一、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, 其他參數 );
歡迎關注我的博客,里面有很多精品合集
- 本文轉載注明出處(必須帶連接,不能只轉文字):字母哥博客。
覺得對您有幫助的話,幫我點贊、分享!您的支持是我不竭的創作動力! 。另外,筆者最近一段時間輸出了如下的精品內容,期待您的關注。