详解MybatisPlus3.4版本之后分页插件的使用

网友投稿 1006 2022-09-16


详解MybatisPlus3.4版本之后分页插件的使用

目录一、MybatisPlusInterceptor二、旧版分页插件配置方法(Mybatis Plus 3.4.0版本之前)三、新的分页插件配置方法(Mybatis Plus 3.4.0版本及其之后的版本)四、分页查询的使用方法

一、MybatisPlusInterceptor

从Mybatis Plus 3.4.0版本开始,不再使用旧版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor。

MybatisPlusInterceptor是一系列的实现InnerInterceptor的拦截器链,也可以理解为一个集合。可以包括如下的一些拦截器

自动分页: PaginationInnerInterceptor(最常用)

多租户: TenantLineInnerInterceptor

动态表名: DynamicTableNameInnerInterceptor

乐观锁: OptimisticLockerInnerInterceptor

sql性能规范: IllegalSQLInnerInterceptor

防止全表更新与删除: BlockAttackInnerInterceptor

二、旧版分页插件配置方法(Mybatis Plus 3.4.0版本之前)

@Configuration

@MapperScan(basePackages = {"com.zimug.**.mapper"})

public class MybatisPlusConfig {

@Bean

public PaginationInterceptor paginationInterceptor() {

PaginationInterceptor paginationInterceptor = new PaginationInterceptor();

// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false

// paginationInterceptor.setOverflow(false);

// 设置最大单页限制数量,默认 500 条,-1 不受限制

// paginationInterceptor.setLimit(500);

// 开启 count 的 join 优化,只针对部分 left join

paginationInhttp://terceptor.setCountSqlParser(new jsqlParserCountOptimize(true));

return paginationInterceptor;

}

}

三、新的分页插件配置方法(Mybatis Plus 3.4.0版本及其之后的版本)

新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题

@Configuration

@MapperScan(basePackages = {"com.zimug.**.mapper"})

public class MybatisPlusConfig {

/**

* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)

*/

@Bean

public MybatisPlusInterceptor mybatisPlusInterceptor() {

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

//向Mybatis过滤器链中添加分页拦截器

interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.mysql));

//还可以添加i他的拦截器

return interceptor;

}

@Bean

public ConfigurationCustomizer configurationCustomizer() {

return configuration -> configuration.setUseDeprecatedExecutor(false);

}

}

四、分页查询的使用方法

分页查询的使用方法没有变化,仍然和Mybatis之前的版本一致,没有变化。 这里简单举一个例子

Page page = new Page<> (pageNum,pageSize); //查询第pageNum页,每页pageSize条数据

//将分页参数page作为Mybatis或Mybatis Plus的第一个参数传入持久层函数,即可完成分页查询

return mySystemMapper.selectUser(page, 其他参数 );


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HuaWei ❀ IS-IS TE
下一篇:Cisco ❀ 组建多层交换网络
相关文章

 发表评论

暂时没有评论,来抢沙发吧~