整个项目的结构

创建表结构
CREATETABLE`user`(`Id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键',`UserTypeID`int(11)NOTNULLCOMMENT'UserType表主键',`Code`varchar(50)NOTNULLCOMMENT'用户代码(唯一)',`Name`varchar(255)NOTNULLCOMMENT'用户名称',`Password`varchar(50)NOTNULLCOMMENT'用户密码(加密)',`Iphone`varchar(50)DEFAULTNULLCOMMENT'用户联系方式(可用来登录)',PRIMARYKEY(`Id`)USINGBTREE)ENGINE=InnoDBAUTO_INCREMENT=3DEFAULTCHARSET=utf8 ROW_FORMAT=DYNAMIC;
Pom文件
<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.3</version><relativePath/></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.23</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build></project>
Util包下Result类返回结果统一封装
@Data@AllArgsConstructor@NoArgsConstructorpublicclassResult{privateint code;privateString msg;privateLong count;privateObject data;}
Controller层
@RestController@RequestMapping("/prosys/user")publicclassUserController{@AutowiredprivateUserService userService;@PostMapping("/login")publicResultlogin(@RequestBodyMap map){Result result=newResult();try{String username=String.valueOf(map.get("username"));String password=String.valueOf(map.get("password"));User user= userService.userlogin(username, password);if(user==null){
result.setCode(404);
result.setMsg("用户不存在或密码错误!");}else{
result.setCode(200);
result.setMsg("登录成功");
result.setData(user);}}catch(Exception e){
result.setCode(-1);
result.setMsg(e.getMessage());}return result;}}
Service层
publicinterfaceUserService{Useruserlogin(String username,String password);}
Mapper层
publicinterfaceUserMapper{Useruserlogin(String username,String password);}
xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.example.demo.mapper.UserMapper"><selectid="userlogin"resultType="com.example.demo.pojo.User">
select * from user where (Code=#{username} or Iphone=#{username}) and Password=#{password}</select></mapper>
pojo层
@Data@NoArgsConstructor@AllArgsConstructorpublicclassUser{privateintId;privateintUserTypeID;privateStringCode;privateStringName;privateStringPassword;privateStringIphone;}
application.yml配置文件
server:port:8088spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/prosys?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowMultiQueries=trueusername: rootpassword:123456
PostMan测试

