File -> New ->Project
依次点 Spring Initializr、选择Project SDK为jdk1.8
Next 下一步
这里可以改Group和Artifact
Next 下一步
Developer Tools 开发工具,可以选择 Spring Boot DevTools(热部署)Lombok(插件,可以少些get/set)
Web 选择 Spring Web
SQL 选择 JDBC API、MyBatis Framework、MySQL Driver
Next 下一步
可以在此更改Project location
Finish然后OK
创建完后的项目结构:
创建用户表,语句如下:
CREATE TABLE `user` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
`sex` int(0) NULL DEFAULT NULL COMMENT '性别 0男1女',
`password` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`mobile` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`email` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `id`(`id`) USING BTREE,
UNIQUE INDEX `uq_invite_mobile`(`mobile`) USING BTREE
)
配置application.yml
还是比较习惯使用yml,把application重命名为yml,并新增application-dev.yml开发环境
application.yml如下配置:
# Tomcat
server:
tomcat:
uri-encoding: UTF-8
port: 8082
servlet:
context-path: /api
spring:
profiles:
active: dev
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
enabled: true
#mybatis
mybatis:
mapper-locations: classpath*:/mapper/*.xml
typeAliasesPackage: com.sandy.api.*.entity
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
application-dev.yml如下配置:
# datasource
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
driverClassName: com.mysql.jdbc.Driver
username: root
password: xxxx
创建实体类UserEntity
package com.sandy.api.entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
/**
* @author mrche
*/
@Getter
@Setter
@ToString
public class UserEntity implements Serializable {
private static final long serialVersionUID =1L;
/**
* ID
*/
private Integer id;
/**
* 用户名
*/
private String name;
/**
* 性别
*/
private Integer sex;
/**
* 密码
*/
private String password;
/**
* 电话
*/
private String mobile;
/**
* 邮件
*/
private String email;
}
创建UserMapper.java
package com.sandy.api.mapper;
import com.sandy.api.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 用户相关
* @author mrche
*/
@Mapper
public interface UserMapper {
/**
* 查询用户信息
* @param name 用户名
* @param pwd 密码
* @return UserEntity
*/
UserEntity doLogin(@Param(value = "name") String name,@Param(value = "pwd") String pwd);
}
创建UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sandy.api.mapper.UserMapper">
<resultMap id="UserResultMap" type="com.sandy.api.entity.UserEntity">
<result column="id" jdbcType="INTEGER" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="sex" jdbcType="INTEGER" property="sex"/>
<result column="password" jdbcType="VARCHAR" property="password"/>
<result column="mobile" jdbcType="VARCHAR" property="mobile"/>
<result column="email" jdbcType="VARCHAR" property="email"/>
</resultMap>
<!-- 根据用户名查询用户数据 -->
<select id="doLogin" resultMap="UserResultMap" parameterType="java.lang.String">
select id,name,sex,password,mobile,email from user where name = #{name} and password = #{pwd};
</select>
</mapper>
创建UserService.java
package com.sandy.api.service;
import com.sandy.api.entity.UserEntity;
/**
* 用户相关
* @author mrche
*/
public interface UserService {
/**
* 登录
* @param name
* @param pwd
* @return
*/
public UserEntity doLogin(String name, String pwd);
}
创建UserService实现类UserServiceImpl.java
package com.sandy.api.service.impl;
import com.sandy.api.entity.UserEntity;
import com.sandy.api.mapper.UserMapper;
import com.sandy.api.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 用户相关
* @author mrche
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
/**
* 登录
* @param name
* @param pwd
* @return
*/
@Override
public UserEntity doLogin(String name, String pwd) {
return userMapper.doLogin(name,pwd);
}
}
创建LoginController.java
package com.sandy.api.controller;
import com.sandy.api.entity.UserEntity;
import com.sandy.api.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 登录相关
* @author mrche
*/
@RestController
@RequestMapping("/auth")
public class LoginController {
@Autowired
private UserService userService;
@RequestMapping("/login")
public Map doLogin(@RequestBody Map<String, Object> params){
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("resultCode",0);
resultMap.put("resultMsg","登录成功");
String name = String.valueOf(params.get("name"));
String pwd = String.valueOf(params.get("pwd"));
UserEntity userEntity = userService.doLogin(name,pwd);
if (userEntity == null){
resultMap.put("resultCode",1);
resultMap.put("resultMsg","用户名或密码错误");
}else {
resultMap.put("data",userEntity.toString());
}
return resultMap;
}
}
项目目录如下:
至此,一个最简单得后端项目创建完毕。