MybatisPlusバージョン3.4以降のページングプラグインへの変更

ファイル

一、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;
    }
}

3.ページングプラグインの新しい構成方法(Mybatis Plus 3.4.0バージョン以降のバージョン)

新しいページングプラグイン、1つの緩和策、および2番目の緩和策は、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, 其他参数 );

私のブログをフォローすることを歓迎します、多くのブティックコレクションがあります

  • この記事は、出典を示して複製されています(接続を添付する必要があり、テキストのみを複製することはできません):レターブラザーのブログ

あなたがそれがあなたに役立つと思うなら、私のためにそれを好きにして共有してください!あなたのサポートは私の尽きることのない創造的な動機です!また、最近、以下のような高品質なコンテンツを出力しておりますので、よろしくお願いいたします。

おすすめ

転載: blog.csdn.net/hanxiaotongtong/article/details/113102579