经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MyBatis » 查看文章
详解MybatisPlus3.4版本之后分页插件的使用
来源:jb51  时间:2021/11/9 12:48:57  对本文有异议

一、MybatisPlusInterceptor

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

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

  • 自动分页: PaginationInnerInterceptor(最常用)
  • 多租户: TenantLineInnerInterceptor
  • 动态表名: DynamicTableNameInnerInterceptor
  • 乐观锁: OptimisticLockerInnerInterceptor
  • sql性能规范: IllegalSQLInnerInterceptor
  • 防止全表更新与删除: BlockAttackInnerInterceptor

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

  1. @Configuration
  2. @MapperScan(basePackages = {"com.zimug.**.mapper"})
  3. public class MybatisPlusConfig {
  4.  
  5. @Bean
  6. public PaginationInterceptor paginationInterceptor() {
  7. PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
  8. // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
  9. // paginationInterceptor.setOverflow(false);
  10. // 设置最大单页限制数量,默认 500 条,-1 不受限制
  11. // paginationInterceptor.setLimit(500);
  12. // 开启 count 的 join 优化,只针对部分 left join
  13. paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
  14. return paginationInterceptor;
  15. }
  16. }

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

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

  1. @Configuration
  2. @MapperScan(basePackages = {"com.zimug.**.mapper"})
  3. public class MybatisPlusConfig {
  4.  
  5. /**
  6. * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
  7. */
  8. @Bean
  9. public MybatisPlusInterceptor mybatisPlusInterceptor() {
  10. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  11. //向Mybatis过滤器链中添加分页拦截器
  12. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  13. //还可以添加i他的拦截器
  14. return interceptor;
  15. }
  16.  
  17. @Bean
  18. public ConfigurationCustomizer configurationCustomizer() {
  19. return configuration -> configuration.setUseDeprecatedExecutor(false);
  20. }
  21. }

四、分页查询的使用方法

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

  1. Page<SysUserOrg> page = new Page<> (pageNum,pageSize); //查询第pageNum页,每页pageSize条数据
  2. //将分页参数page作为Mybatis或Mybatis Plus的第一个参数传入持久层函数,即可完成分页查询
  3. return mySystemMapper.selectUser(page, 其他参数 );

本文转载出处:字母哥博客

到此这篇关于详解MybatisPlus3.4版本之后分页插件的使用的文章就介绍到这了,更多相关MybatisPlus3.4 分页内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号