乐趣区

关于spring:Mybatis-Plus-34版本之后分页插件的变化

一、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, 其余参数);

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

本文转载注明出处(必须带连贯,不能只转文字):字母哥博客 – zimug.com

感觉对您有帮忙的话,帮我点赞、分享!您的反对是我不竭的创作能源!。另外,笔者最近一段时间输入了如下的精品内容,期待您的关注。

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