一、逻辑删除

1.逻辑删除后,将不会被查询出来。

mybatis

2.查询中排除逻辑删除字段

  1. 在Wrappers.<User>lambdaQuery().eq(User::getIsDel, 0);
  2. 自定义@TableField(select = false)

二.自动填充

本次针对数据表中的create_time、update_time字段进行自动填充实例。

1.自动填充实例

public 

2.自动填充优化

首先判断是否有当前参数,有则执行自动填充,没有则不执行自动填充。

@Component

三.乐观锁插件

1.实现步骤

@Configuration

2.主意事项

  1. 支持的数据类型只有:int、Integer、long、Long、Date、Timestamp、LocalDateTime
  2. 直属类型下 newVersion = oldVersion + 1
  3. newVersion 会回写到entity中
  4. 只支持updateById(id)与update(entity, wrapper)方法
  5. 在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.主意事项

  1. 原理为解析替换设定表名为处理器的返回表名,表名建议可以定义复杂一些避免误替换
  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注入

mybatis-plus根据多个字段排序_Mybatis Plus学习笔记(逻辑删除/动态填充/常用插件)...相关推荐

  1. mysql查询数据为0的所有字段6_MySQL8.0 初级学习笔记(六)查询数据

    MySQL8.0 初级学习笔记(六)查询数据 MySQL8.0 初级学习笔记(六)查询数据 查询有多种方法:单表查询,使用集合函数查询,连接查询,子查询,合并查询结果,为表和字段取别名,使用正则表达式 ...

  2. mybatis 多字段排序_mybatis example排序

    背景 使用mybatis example方式做查询时候,业务需要按照条件排序,比如:创建时间倒序 example.setOrderByClause("create_time desc&quo ...

  3. 强大的DataGrid组件[13]_字段过滤(Filter)——Silverlight学习笔记[21]

    在DataGrid中使用字段过滤可以用来进行数据的筛选,查找出符合条件的信息.本文将为大家介绍如何对DataGrid执行字段过滤. 需要了解的知识 1)PagedCollectionView 它代表了 ...

  4. sql依据单个字段去重_小白学习笔记,测试工程师必备SQL语句整理

    作为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工 ...

  5. MySQL中会用到age字段的索引_MySQL学习笔记(四):正确使用索引(二)

    上一篇学习到了MySQL中的索引是什么,以及一些关于索引的简单的知识,这篇我打算详细地谈一谈如何正确地使用索引.索引的使用看起来很简单,但是在真正去学习它的时候才发现,原来是暗藏玄机.使用索引时有很多 ...

  6. mybatis学习笔记四(动态sql)

    直接贴图,注解在代码上,其他的配置文件在学习一中就不贴了 1 数据库 2 实体类 package com.home.entity;/*** 此类是: 用户实体类* @author hpc* @2017 ...

  7. 非支配排序遗传算法NSGA-II学习笔记

    一.多目标优化问题的解 在单目标优化问题中,通常最优解只有一个,而且能用比较简单和常用的数学方法求出其最优解.然而在多目标优化问题中,各个目标之间相互制约,可能使得一个目标性能的改善是以其他目标性能为 ...

  8. 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项

    如果使用原始的DAO,要自己对其进行实现,而如果使用Mybatis的Mapper动态代理,就可以让Mybatis自动帮你实现DAO接口. Mapper动态代理的四项原则 1.接口方法名需要与Mappe ...

  9. mybatis多字段排序_解决mybatis中order by排序无效问题

    1.#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111&qu ...

最新文章

  1. Linux里10个最危险的命令
  2. 斯坦福-随机图模型-week4.0_
  3. WDM驱动程序入门(很详细)
  4. SpingMVC Model 和ModelAndView,以及从参数的设置和接收
  5. Spark常见优化原则
  6. Atitit 文档资料整理的规范流程与问题解决目录1. 减肥 11.1. 剥离非原创类文件 11.2. 去重 11.3. 转换格式 21.4. Topic主题剥离 22. 脱敏 2
  7. php mysql注入测试工具_PHP+MYSQL 【注入漏洞】攻防测试
  8. linux下部署selenium爬虫程序
  9. jieba分词(1):入门案例
  10. EAX AX等寄存器之间的关系
  11. 神鬼世界更新完了为什么显示与服务器断开连接,全新服务器构架 神鬼世界6月23日数据互通公告...
  12. 两平面平行但不重合的条件是_____黑龙江省大庆外国语学校高中数学_第二章《2.2_直线、平面平行的判定及其性质》单元测试5_新人教A版必修3...
  13. burp的安装步骤(win+linux)
  14. EasyExcel的导入和导出
  15. ftp主动模式和被动模式的区别
  16. 利用 NSS Key Log 解密 HTTPS
  17. canvas编写飞机大战
  18. 【OpenStack】使用Komodo远程调试python(OpenStack)
  19. 全国话费充值;自动充值软件代理
  20. 计算机在电影特技中的应用,计算机3D技术在电影中的应用.doc

热门文章

  1. Java读取多层级xml文件
  2. Ajax系统学习总结
  3. 手机浏览器无法获取COOKIE的原因
  4. 深度学习:向人工智能迈进
  5. github/gitlab同时管理多个ssh key
  6. 从源码编译Chrome(chromium)
  7. 各种没有由来的问题,干!
  8. 【javascript】checkbox——类似邮箱全选功能
  9. MSN Editor 0DAY
  10. spring中bean的高级属性之list, set, map以及props元素(含举例)