SpringBoot+MyBatis实现用户登录功能

2022-08-27 12:06:48

整个项目的结构

在这里插入图片描述

创建表结构

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/><!-- lookup parent from repository --></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测试

在这里插入图片描述
在这里插入图片描述

  • 作者:米粉er
  • 原文链接:https://blog.csdn.net/weixin_44226883/article/details/119324087
    更新时间:2022-08-27 12:06:48