插件

分页插件

配置方法

@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 如果配置多个插件,切记分页最后添加
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        //interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); 如果有多数据源可以不配具体类型 否则都建议配上具体的DbType
        return interceptor;
    }
}

属性介绍

属性名
类型
默认值
描述

overflow

boolean

false

溢出总页数后是否进行处理(默认不处理,参见 插件#continuePage 方法)

maxLimit

Long

单页分页条数限制(默认无限制,参见 插件#handlerLimit 方法)

dbType

DbType

数据库类型(根据类型获取应使用的分页方言,参见 插件#findIDialect 方法)

dialect

IDialect

方言实现类(参见 插件#findIDialect 方法)

建议单一数据库类型的均设置 dbType

Page

该类继承了 IPage 类,实现了简单分页模型,如果你要实现自己的分页模型可以继承 Page 类或者实现 IPage 类。

属性名
类型
默认值
描述

records

List

emptyList

查询数据列表

total

Long

0

查询列表总记录数

size

Long

10

每页显示条数,默认 10

current

Long

1

当前页

orders

List

emptyList

排序字段信息,允许前端传入的时候,注意 SQL 注入问题,可以使用 SqlInjectionUtils.check(...) 检查文本

optimizeCountSql

boolean

true

自动优化 COUNT SQL 如果遇到 jSqlParser 无法解析情况,设置该参数为 false

optimizeJoinOfCountSql

boolean

true

自动优化 COUNT SQL 是否把 join 查询部分移除

searchCount

boolean

true

是否进行 count 查询,如果只想查询到列表不要查询总记录数,设置该参数为 false

maxLimit

Long

单页分页条数限制

countId

String

xml 自定义 count 查询的 statementId 也可以不用指定在分页 statementId 后面加上 _mpCount 例如分页 selectPageById 指定 count 的查询 statementId 设置为 selectPageById_mpCount 即可默认找到该 SQL 执行

乐观锁插件

当要更新一条记录的时候,希望这条记录没有被别人更新,就需要加上乐观锁,乐观锁可以通过版本号的方式实现,具体实现方式如下:

配置方法

注解

在实体类的字段上加上 @Version 注解即可,如下:

注意

  • 支持的数据类型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime

  • 在整数类型下,newVersion = oldVersion + 1

  • 乐观锁插件只支持 updateById(id)update(entity, wrapper) 方法

  • update(entity, wrapper) 方法下,wrapper 不能复用!!!

多租户插件

多租户实现方式有两种,一种是数据库 schema 级别的多租户,另一种是业务数据列的多租户,具体实现方式如下:

配置方法

防止全表更新与删除插件

针对 update 和 delete 语句 作用: 阻止恶意的全表更新删除

注入 MybatisPlusInterceptor 类,并配置 BlockAttackInnerInterceptor 拦截器

动态表名插件

数据权限插件

数据变动记录插件

非法 SQL 阻断插件

最后更新于