推广

Mybatis Plus 3.4版本之后分页插件的变化

iseeyu2年前 (2024-02-21)推广145

file

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

欢迎关注我的博客,里面有很多精品合集

  • 本文转载注明出处(必须带连接,不能只转文字):字母哥博客。

觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。

  • 《手摸手教你学Spring Boot2.0》
  • 《Spring Security-JWT-OAuth2一本通》
  • 《实战前后端分离RBAC权限管理系统》
  • 《实战SpringCloud微服务从青铜到王者》
  • 《VUE深入浅出系列》

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://0291.com.cn/post/57549.html

相关文章

借鉴大佬们的运营手法,做小学生生意

借鉴大佬们的运营手法,做小学生生意

我是卢松松,点点上面的头像,欢迎关注我哦!今天在站内看到一篇《推荐几个三四五线小城市可性的》文章,在三四五线小城市以老年或小学生为目标群体,同时提到年后小学生钱多!看到小学生字样我不禁笑了笑,如何做小学生生意我在行,于是一个不成熟的想法便浮现出来!了解小学生的由于我家以前就...

我来教你杭州专业网站建设教你怎么进行高端网站建设。

我来教你杭州专业网站建设教你怎么进行高端网站建设。

       网站也分低端和高端,为了体现企业的实力与能力,就更需要做的好,达到良好的宣传响应。        1、高端需要有一套专业的网站策划   &...

快手实战指南:运营规划+视频产出+注意事项+用户维护等。

快手实战指南:运营规划+视频产出+注意事项+用户维护等。

一、新账号如何制定运营规划 1. 账号人设。 如今运营快手号更多是为了商业变现,在运营初期搭建“人设”会服务于账号视频内容输出主线、直播以及带货。 2. 内容定位。 账号的内容定位更加垂直化,如果运营一个宠物类的帐号,账号内容应当基本与宠物相关;如果运营一个店铺的帐号,账号内容应当...

如何制定产品拉新引流策略?

如何制定产品拉新引流策略?

  互联网进入到下半场,流量采买价格昂贵,企业项目运营费用紧缺且有限,如何给产品拉新引流,成为产品运营人的一大难题。本篇通过实际案例来拆解,产品运营人可以怎样给产品引流拉新? 【案例】 你现在是某电视台的产品运营,目前公司旗下已经有1款成熟的新闻资讯类产品。最近公司又研发出...

seo工具:seo常用的工具知识。

seo工具:seo常用的工具知识。

有很多人想学习seo,了解和掌握许多seo常识,不知道从哪里开始。你所说的,你说得很好,但如果你说了,就没有秩序了。很难找到家庭作业,更别说了。让我向你推荐一下seo的用途和你需要知道的东西。 html只是想学习seo,是一个必不可少的词根,html语言也比较容易学习,查看html学习视频等,看完...

淘宝开店订单险为什么交不了,淘宝订单险为什么不显示(千牛订单险在哪里开通)

淘宝开店订单险为什么交不了,淘宝订单险为什么不显示(千牛订单险在哪里开通)

加入订单险对卖家是由要求的,如果店铺开业时间不满60天,如果想要加入那么只能等60天后了。如果店铺之前之前有过比较严重的违规行为,也就是之前扣分大于24分的B类或C类违规行为也不能交。...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片