一、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, 其他参数 );
私のブログをフォローすることを歓迎します、多くのブティックコレクションがあります
- この記事は、出典を示して複製されています(接続を添付する必要があり、テキストのみを複製することはできません):レターブラザーのブログ。
あなたがそれがあなたに役立つと思うなら、私のためにそれを好きにして共有してください!あなたのサポートは私の尽きることのない創造的な動機です!。また、最近、以下のような高品質なコンテンツを出力しておりますので、よろしくお願いいたします。