詳解MybatisPlus3.4版本之后分頁(yè)插件的使用
一、MybatisPlusInterceptor
從Mybatis Plus 3.4.0版本開(kāi)始,不再使用舊版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor。
MybatisPlusInterceptor是一系列的實(shí)現(xiàn)InnerInterceptor的攔截器鏈,也可以理解為一個(gè)集合??梢园ㄈ缦碌囊恍r截器
- 自動(dòng)分頁(yè): PaginationInnerInterceptor(最常用)
- 多租戶: TenantLineInnerInterceptor
- 動(dòng)態(tài)表名: DynamicTableNameInnerInterceptor
- 樂(lè)觀鎖: OptimisticLockerInnerInterceptor
- sql性能規(guī)范: IllegalSQLInnerInterceptor
- 防止全表更新與刪除: BlockAttackInnerInterceptor
二、舊版分頁(yè)插件配置方法(Mybatis Plus 3.4.0版本之前)
@Configuration @MapperScan(basePackages = {"com.zimug.**.mapper"}) public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); // 設(shè)置請(qǐng)求的頁(yè)面大于最大頁(yè)后操作, true調(diào)回到首頁(yè),false 繼續(xù)請(qǐng)求 默認(rèn)false // paginationInterceptor.setOverflow(false); // 設(shè)置最大單頁(yè)限制數(shù)量,默認(rèn) 500 條,-1 不受限制 // paginationInterceptor.setLimit(500); // 開(kāi)啟 count 的 join 優(yōu)化,只針對(duì)部分 left join paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true)); return paginationInterceptor; } }
三、新的分頁(yè)插件配置方法(Mybatis Plus 3.4.0版本及其之后的版本)
新的分頁(yè)插件,一緩和二緩遵循mybatis的規(guī)則,需要設(shè)置 MybatisConfiguration#useDeprecatedExecutor = false 避免緩存出現(xiàn)問(wèn)題
@Configuration @MapperScan(basePackages = {"com.zimug.**.mapper"}) public class MybatisPlusConfig { /** * 新的分頁(yè)插件,一緩和二緩遵循mybatis的規(guī)則,需要設(shè)置 MybatisConfiguration#useDeprecatedExecutor = false 避免緩存出現(xiàn)問(wèn)題(該屬性會(huì)在舊插件移除后一同移除) */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); //向Mybatis過(guò)濾器鏈中添加分頁(yè)攔截器 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); //還可以添加i他的攔截器 return interceptor; } @Bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> configuration.setUseDeprecatedExecutor(false); } }
四、分頁(yè)查詢的使用方法
分頁(yè)查詢的使用方法沒(méi)有變化,仍然和Mybatis之前的版本一致,沒(méi)有變化。 這里簡(jiǎn)單舉一個(gè)例子
Page<SysUserOrg> page = new Page<> (pageNum,pageSize); //查詢第pageNum頁(yè),每頁(yè)pageSize條數(shù)據(jù) //將分頁(yè)參數(shù)page作為Mybatis或Mybatis Plus的第一個(gè)參數(shù)傳入持久層函數(shù),即可完成分頁(yè)查詢 return mySystemMapper.selectUser(page, 其他參數(shù) );
本文轉(zhuǎn)載出處:字母哥博客
到此這篇關(guān)于詳解MybatisPlus3.4版本之后分頁(yè)插件的使用的文章就介紹到這了,更多相關(guān)MybatisPlus3.4 分頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java設(shè)計(jì)模式之解釋器模式(Interpreter模式)介紹
這篇文章主要介紹了Java設(shè)計(jì)模式之解釋器模式(Interpreter模式)介紹,Interpreter定義:定義語(yǔ)言的文法,并且建立一個(gè)解釋器來(lái)解釋該語(yǔ)言中的句子,需要的朋友可以參考下2015-03-03Netty中的DelimiterBasedFrameDecoder使用方法詳解
這篇文章主要介紹了Netty中的DelimiterBasedFrameDecoder使用方法詳解,DelimiterBasedFrameDecoder與LineBasedFrameDecoder類(lèi)似,只不過(guò)更加通用,允許我們指定任意特殊字符作為分隔符,我們還可以同時(shí)指定多個(gè)分隔符,需要的朋友可以參考下2023-12-12SpringBoot整合Spring?Data?JPA的詳細(xì)方法
JPA全稱為Java Persistence API(Java持久層API),是一個(gè)基于ORM的標(biāo)準(zhǔn)規(guī)范,在這個(gè)規(guī)范中,JPA只定義標(biāo)準(zhǔn)規(guī)則,不提供實(shí)現(xiàn),本文重點(diǎn)給大家介紹SpringBoot整合Spring?Data?JPA的相關(guān)知識(shí),感興趣的朋友一起看看吧2022-02-02SpringData @Query和@Modifying注解原理解析
這篇文章主要介紹了SpringData @Query和@Modifying注解原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Java ArrayList中存放引用數(shù)據(jù)類(lèi)型的方式
這篇文章主要介紹了Java ArrayList中存放引用數(shù)據(jù)類(lèi)型的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10SpringBoot實(shí)現(xiàn)redis延遲隊(duì)列的示例代碼
延時(shí)隊(duì)列場(chǎng)景在我們?nèi)粘I(yè)務(wù)開(kāi)發(fā)中經(jīng)常遇到,它是一種特殊類(lèi)型的消息隊(duì)列,本文就來(lái)介紹一下SpringBoot實(shí)現(xiàn)redis延遲隊(duì)列的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Spring boot集成Kafka消息中間件代碼實(shí)例
這篇文章主要介紹了Spring boot集成Kafka消息中間件代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Java基礎(chǔ)之線程鎖相關(guān)知識(shí)總結(jié)
今天給大家?guī)?lái)的是關(guān)于Java線程的相關(guān)知識(shí),文章圍繞著Java線程鎖展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06