mybatis-plus根据多个字段排序_Mybatis Plus学习笔记(逻辑删除/动态填充/常用插件)...
一、逻辑删除1.逻辑删除后,将不会被查询出来。mybatis2.查询中排除逻辑删除字段在Wrappers.<User>lambdaQuery().eq(User::getIsDel, 0);自定义@TableField(select = false)二.自动填充本次针对数据表中的create_time、update_time字段进行自动填充实例。1.自动填充实例public 2.自动填
·
一、逻辑删除
1.逻辑删除后,将不会被查询出来。
mybatis
2.查询中排除逻辑删除字段
- 在Wrappers.<User>lambdaQuery().eq(User::getIsDel, 0);
- 自定义@TableField(select = false)
二.自动填充
本次针对数据表中的create_time、update_time字段进行自动填充实例。
1.自动填充实例
public
2.自动填充优化
首先判断是否有当前参数,有则执行自动填充,没有则不执行自动填充。
@Component
三.乐观锁插件
1.实现步骤
@Configuration
2.主意事项
- 支持的数据类型只有:int、Integer、long、Long、Date、Timestamp、LocalDateTime
- 直属类型下 newVersion = oldVersion + 1
- newVersion 会回写到entity中
- 只支持updateById(id)与update(entity, wrapper)方法
- 在update(entity, wrapper)方法下,wrapper不能复用
四.性能分析插件
1.性能分析插件
@Bean
@Profile({"dev", "test"}) // 在dev和test环境中开启
public PerformanceMonitorInterceptor performanceMonitorInterceptor() {
PerformanceMonitorInterceptor pmi = new PerformanceMonitorInterceptor();
return pmi;
}
2.执行sql打印日志
driver
3.创建spy.properties
#
五.多租户SQL解析器
1.示例工程(官网示例)
// 官网示例
六.动态表名SQL解析器
1.动态表名实现
ITableNameHandler 接口注入到 DynamicTableNameParser 处理器链中,将动态表名解析器注入到 MP 解析链
2.主意事项
- 原理为解析替换设定表名为处理器的返回表名,表名建议可以定义复杂一些避免误替换
- 例如:真实表名为 user 设定为 mp_dt_user 处理器替换为 user_2019 等
7.自定义方法
1.自定义方法
public
2.alwaysUpdateSomeColumnById示例
// 在MySqlInjector.java文件中添加alwaysUpdateSomeColumnById注入。并且不更改name值
3.deleteByIdWithFill示例
// 在MySqlInjector.java文件中添加deleteByIdWithFill注入
4.insertBatchSomeColumn示例
// 在MySqlInjector.java文件中添加insertBatchSomeColumn注入
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)