参考 B 站楠哥教你学 Java的4 小时学会 MyBatis Plus 通俗易懂,从入门到部署上线视频
MyBatis-Plus 官网
MyBatis Plus
国产的开源框架,基于 MyBatis
核心功能就是简化 MyBatis 的开发,提高效率。
MyBatis Plus 快速上手
Spring Boot(2.3.0) + MyBatis Plus(国产的开源框架,并没有接入到 Spring 官方孵化器中)
1、创建 Maven 工程
2、pom.xml 引入 MyBatis Plus 的依赖
3、创建实体类
4、创建 Mapper 接口
5、application.yml
6、启动类需要添加 @MapperScan("mapper 所在的包"),否则无法加载 Mppaer bean。
7、测试
常用类注解
@TableName
映射数据库的表名
@TableId
设置主键映射,value 映射主键字段名
type 设置主键类型,主键的生成策略
值 | 描述 |
---|
AUTO | 数据库自增 |
NONE | MP set 主键,雪花算法实现 |
INPUT | 需要开发者手动赋值 |
ASSIGN_ID | MP 分配 ID,Long、Integer、String |
ASSIGN_UUID | 分配 UUID,Strinig |
INPUT 如果开发者没有手动赋值,则数据库通过自增的方式给主键赋值,如果开发者手动赋值,则存入该值。
AUTO 默认就是数据库自增,开发者无需赋值。
ASSIGN_ID MP 自动赋值,雪花算法。
ASSIGN_UUID 主键的数据类型必须是 String,自动生成 UUID 进行赋值
@TableField
value 映射非主键字段,映射字段名
exist 表示是否为数据库字段 false,如果实体类中的成员变量在数据库中没有对应的字段,则可以使用 exist,VO、DTO
select 表示是否查询该字段
fill 表示是否自动填充,将对象存入数据库的时候,由 MyBatis Plus 自动给某些字段赋值,create_time、update_time
1、给表添加 create_time、update_time 字段
2、实体类中添加成员变量
3、创建自动填充处理器
@Version
标记乐观锁,通过 version 字段来保证数据的安全性,当修改数据的时候,会以 version 作为条件,当条件成立的时候才会修改成功。
version = 2
线程 1:update ... set version = 2 where version = 1
线程 2 :update ... set version = 2 where version = 1
1、数据库表添加 version 字段,默认值为 1
2、实体类添加 version 成员变量,并且添加 @Version
3、注册配置类
@EnumValue
1、通用枚举类注解,将数据库字段映射成实体类的枚举类型成员变量
application.yml
2、实现接口
@TableLogic
映射逻辑删除
1、数据表添加 deleted 字段
2、实体类添加注解
3、application.yml 添加配置
查询
自定义 SQL(多表关联查询)
自定义 SQL(多表关联+模糊查询+分页)
写分页查询的时候,sql 语句不需要;
符号,否则报错。
因为我们知道分页查询使用 limit
,而PageHelper
插件的PageInterceptor
拦截器就是对查询的 sql 进行拦截然后后面拼接limit
实现分页。进行拼接的时候,就需要我们的 sql 语句后面没有结束符号;
分号,将 sql 语句的;
分号去掉就可以解决这个问题了。
添加
删除
修改
MyBatisPlus 自动生成
根据数据表自动生成实体类、Mapper、Service、ServiceImpl、Controller
1、pom.xml 导入 MyBatis Plus Generator
Velocity(默认)、Freemarker、Beetl
2、启动类
Spring Boot + MyBatis Plus 打包应用,直接发布 阿里云 上云
推荐文章链接