概述
尚硅谷 谷粒学院 项目
MP
mybatis-plug 使用案例
主键策略
太多了.请参考 这篇文章
1. 自动增长
auto_increment. 在数据中库设置. 但是不适用于分库分表的情况
2. UUID
每次随机生成一个ID值. 这种方式不好进行排序.
3. Redis 生成 ID 使用 INCR 和 INCRBY 命令实现
4. snowflake
4bit 作为毫秒数. 10bit 作为机器id(5个bit数据中心,5个bit是机器ID),12bit 作为 毫秒内流水号
MP主键策略
使用 @TableId(type = IdType.AUTO) 来指定主键策略
AUTO: 自动增长
ID_WORKER; mp自带策略,生成19位,数字类型使用这种. ID类型为 Long 使用
ID_WORKSTR: mp自带策略,生成19位,字符串类型使用这种 ID类型为 String 使用
INPUT: 自己设置ID
NONE: 框架不生成,自己设置
UUID: 随机唯一的ID值
mp 自带使用的是 snowflake 算法生成
自动填充
对于一些字段进行自动填充
@FieldFill()
使用该注解对字段进行标记
拦截器
mp 提供的拦截器.可以在对对象操作时操纵对象的数据
使用 mp 进行 添加操作. 第一个方法自动执行
使用 mp 进行 修改操作. 第二个方法自动执行
锁
乐观锁
解锁丢失更新问题
乐观锁插件
@Version
在 实体类上 添加字段. version. 添加注解 @Version
之后
这里的 @MapperScan("") 也可以写在这里
分页
在上面 mybatisConfig 配置类中 添加分页 插件即可
使用 mp 的 page 对象 进行分页
逻辑删除
1. 表添加逻辑删除字段
2. 实体类添加属性
3. 实体类属性添加注解
4. 配置逻辑删除插件
或者
4. 在 properties 文件中配置
性能分析插件
在 配置文件中 添加插件实例
还需要在 .properties 文件中指定环境
wrapper 查询
演示ge,gt,le,lt,eq,ne,between,like,orderByDesc,last 的使用
ge: >=
gt: <=
le: <=
lt: <
eq: ==
ne: !=,<>
demo
between
like
orderByDesc/Asc
last
直接拼接到 SQL的最后. 拼接多次以最后一次为准