image.png

一、逻辑删除

1.配置及例子

1.配置文件 (下面的是一个全局配置**
image.png
2. 配置类
image.png
3. 实体类
image.png
4. 测试
例1 删除
image.pngimage.png
根据上面可以看到,delete语句成了一条update语句,将逻辑删除字段设置为0了

例2 查询
image.png
image.png
例3 插入
image.pngimage.png

2.查询中排除删除标识字段及注意事项

排除删除标识字段
image.pngimage.png
注意事项 **自定义的语句不会加上逻辑删除标识
image.pngimage.pngimage.png
从上面这个deleted字段可以看出,即使在实体类已经标识过了不参与查询,但是自定义的SQL语句还是不会进行判断,并且也会查出来这个逻辑删除字段
解决方法:
1:
image.png
image.png**

二、自动填充

1. 介绍

有的表有新增时间。修改时间等字段,每次自己插入一个字段很麻烦,所以可以选择自动填充,并且可以自动填充操作人是谁

2. 实现

1.修改实体类,增加注解
image.png
2.配置类,新增元对象处理器
image.png
3.测试
插入操作
image.png
image.pngimage.png
更新操作
image.pngimage.png

3. 自动填充优化

比如上面元对象处理器在每次插入的时候,都会调用insertFill()方法执行里面的内容,但是一些插入操作中,并没有对应的creatTime字段,那么就会有很多开销
image.png
image.pngimage.pngimage.png
上面的会执行成功,因为有这个setter方法,但是如果是下面的话,就不会成功了
image.pngimage.pngimage.pngimage.png
通过上面可以看到,虽然是有这个create_time字段,但是并没有填充

案例二:如果我设置了更新时间,就不让它自动填充,如果我没有设置更新时间,则自动填充
image.pngimage.pngimage.png

image.pngimage.png

三、乐观锁插件

image.pngimage.png

1. 配置文件中加入插件类

image.png

2. 在版本号上加入@Version注解

image.png
image.pngimage.pngimage.png

四、性能分析插件

image.png
image.pngimage.png
image.pngimage.png
设置SQL格式化
image.png
image.png
设置SQL的最大时长,超过了就终止
image.pngimage.pngimage.png执行SQL分析打印
image.png
1.引入依赖
image.png
2.application.yml中新增配置
image.png
image.png
image.png
3.新增配置文件
mybatis-plus 官网有对应的配准文件内容
image.png
4.测试
image.png
**

五、多租户SQL解析器

image.png

1. 简介

是一种架构,目的是在多用户条件下,实现用户使用同一套程序且保证用户间数据隔离。
一种方式是不同用户使用独立的数据库,隔离性最高,
第二种是共享数据库,独立schema,多个或所以租户共享database,每个租户有自己的schema(user),
第三种是共享数据库(database),共享schema,共享数据表,每操作一条数据都有该用户的标识

2.实现(针对第三种方式)

依赖于分页插件
1.配置类生明分页插件
image.png
image.png

image.png
2.测试
查询
image.pngimage.png
更新
image.pngimage.png
插入**
image.pngimage.png

image.pngimage.pngimage.png

3.特定sql过滤

表示过滤特定的方法,比如有的方法,例如selectById(),这个方法不想增加租户信息,其他方法又想增加租户信息,这种就属于方法层面的,而不是表层面的

第一种实现:

1.在配置类的分页插件中,接上面5.2的实现,增加一些东西
image.png
2.测试
1测试selectList(),结果有租户信息
image.pngimage.png
2测试selectById(),发现没有租户信息,说明设置成功了
image.pngimage.png

第二种实现:

image.png
如果mybatis-plus是3.1.1之前的版本,还需要设置yml文件,之后的不需要设置
image.png
测试:
image.pngimage.png

六、动态表名SQL解析器

七、SQL注入器