后端学习1.1:用户表增删改查、登录功能接口编写

功能要求

1.新建一个springboot-mybatis集成项目,并连接一个新建数据库,使这个项目可以运行;
2.创建一张用户表,表中应包含唯一索引、用户名、用户密码以及用户信息字段;
要求可以写出相应的接口,实现增加、删除、修改以及查询的功能;
(使用mybatisplus)查询功能应包括根据索引查找单个用户、以及根据用户名和用户信息分页模糊查询用户的功能;
要求使用postman调取接口,并截图证明;
3.实现批量增加用户的功能,应直接使用原版mybatis,在xml中写sql语句;
4.配置redis,实现登录功能,并在输入密码错误三次后锁住账户;
密码要做sha256加密;
这个账户要求锁住20分钟,并在被锁住期间,再次登录应抛出异常;

开发工具:IDEA
技术:Springboot+mybatis+mybatisplus+mysql+redis+postman

1、新建springboot-mybatis集成项目

打开IDEA编辑器——>新建——>项目

后端学习1.1:用户表增删改查、登录功能接口编写_第1张图片

选择Spring initializr——>可以修改名称为适合自己项目的名称和项目存放路径——>选择下一步

后端学习1.1:用户表增删改查、登录功能接口编写_第2张图片

选择Spring Web——>点击完成

后端学习1.1:用户表增删改查、登录功能接口编写_第3张图片

IDEA会根据pom.xml中的配置下载依赖,如果没有自动下载,可进行手动下载,如下图所示
后端学习1.1:用户表增删改查、登录功能接口编写_第4张图片
下载完成后,可将.mvn、mvnw、mvnw.cmd删除
后端学习1.1:用户表增删改查、登录功能接口编写_第5张图片
mvnw–全名是maven wrapper;它的原理是在maven-wrapper.properties文件中记录要使用的maven版本
mvn文件夹–存放maven-wrapper.properties和相关jar包
mvn.cmd–执行mvnw命令的cmd入口
如果不用git做版本控制,不控制maven版本,这些都可以删除

2、连接数据库

在pom.xml中添加数据库相关依赖,在这里使用的是mybatis+mysql
下载依赖
		<dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.47version>
        dependency>
        <dependency>
            <groupId>tk.mybatisgroupId>
            <artifactId>mapperartifactId>
            <version>3.4.0version>
        dependency>
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>1.3.0version>
        dependency>

第一个依赖是 mysql 数据库;
第二个依赖是 tk.mybatis,mybatis 包。
第三个依赖是 org.mybatis.spring.boot,主要用来集成 mybatis 和 spring 框架。

注意:mysql 数据库版本需要指定一下,最好是一个中间版本,不要太新,也不要太老。如果没有指定,会按照最新的版本下载,最新的版本可能会导致老的配置失效,产生bug。

配置数据库相关参数
在 application.properties 文件中添加以下配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.type-aliases-package=com.example.demo

spring.datasource.url:数据库服务器地址。
useUnicode:使用的编码格式。
spring.datasource.username:数据库登陆用户名。
spring.datasource.password:数据库登陆密码。
spring.datasource.driver-class-name:数据库连接驱动类。
mybatis.mapper-locations:mybatis 映射扫描路径。
mybatis.type-aliases-package:实体扫描路径。

3、新建数据库

在这里使用图形化管理工具Navicat进行表操作

4、编写功能接口

第一步:创建 entity 实体类。

根据业务逻辑创建所需要的对象和属性。
新建 entity 文件包
1、文件下面添加User类,用来抽象用户信息
2、文件下面添加Response类,用来返回接口信息
3、……

后端学习1.1:用户表增删改查、登录功能接口编写_第6张图片

第二步:创建 service 服务类。

根据业务关系,编写相关业务逻辑。
新建 service 文件包
1、在此文件包下新建 UserService 类编写接口
2、在此文件包下新建impl文件包,在这文件包下实现UserService接口

后端学习1.1:用户表增删改查、登录功能接口编写_第7张图片
后端学习1.1:用户表增删改查、登录功能接口编写_第8张图片

第三步:创建 mapper 类。

根据 service 服务类创建对应的 mapper 类。
新建 mapper 文件包
在此文件包下新建 UserMapper 类

后端学习1.1:用户表增删改查、登录功能接口编写_第9张图片

第四步:关联数据库,写 sql 语句。

在 resources 文件夹下,新建 mapper 文件夹,在此文件夹下新建相关的 xml 文件

后端学习1.1:用户表增删改查、登录功能接口编写_第10张图片

总结:
Entity:根据业务逻辑创建所需要的对象的属性和方法
Service:根据业务关系,编写相关业务逻辑(调用DAO层接口,接收DAO层返回的数据)
DAO层(Mapper层):根据service服务类创建对应的mapper类,主要与数据库进行交互(sql语句写在对应的xml文件中)
Controller层:负责前后端交互,接收前端请求,调用service层,接收service层返回的数据,最后返回具体的数据和页面到客户端
关系:
Controller层调用service接口里定义的方法(接口里的方法要在serviceImpl里实现);
实现时,调用的是DAO层(Mapper层)里的方法,DAO层的参数源于Entity层;

5、学习到的知识点

  1. Entity、Service、Mapper、Controller之间的关系
  2. mapper文件中的映射关系、数据库操作返回值
  3. 批量增加用户的sql语句用foreach
  4. 随机生成一些数据的方法
eg.生成随机密码:
 - 密码字典——>随机获取字符
 - 密码字典——>随机打乱集合顺序——>随机获取字符
  1. sha256加密(使用Apache的Commons-codec包)
  2. redis配置,实现登录功能
  3. msql删除表中数据使的id从1开始增长
  4. 引入hutool,生成uuid
  5. 配置通用返回对象(beforeBodyWrite)、统一异常处理(ExceptionHandle)
  6. lombok插件 ;通过注解形式,在编译的时候自动为属性生成构造器,getter、setter、toString……
  7. ……

你可能感兴趣的:(后端开发学习,mybatis,java,spring,boot,maven,后端)