MyBatis-Plus 分頁(yè)插件配置的兩種方式實(shí)現(xiàn)
在使用 MyBatis-Plus 進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),分頁(yè)查詢是一個(gè)非常常見(jiàn)的需求。MyBatis-Plus 提供了方便的分頁(yè)插件來(lái)簡(jiǎn)化這一過(guò)程。本文將詳細(xì)介紹如何正確配置 MyBatis-Plus 的分頁(yè)插件(包括 MybatisPlusInterceptor
和 PaginationInterceptor
)。
一、pom.xml文件配置
為了使用 MyBatis-Plus 的分頁(yè)插件,你需要確保在你的 Maven 項(xiàng)目的 pom.xml
文件中正確添加了必要的依賴:(一般情況下,只添加mybatis-plus的起步依賴mybatis-plus-boot-starter就可以)
注意:將${mybatis-plus.version}替換為你的項(xiàng)目的mybatis-plus的版本號(hào),或者在pom.xml的<properties>的標(biāo)簽中統(tǒng)一管理版本信息
<!-- MyBatis-Plus Boot Starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <!-- MyBatis-Plus Extension for PaginationInterceptor or MybatisPlusInterceptor --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>${mybatis-plus.version}</version> </dependency>
二、使用PaginationInterceptor
- 適用于 MyBatis-Plus 3.4.0 之前的版本
如果你正在使用的是 MyBatis-Plus 3.4.0 之前的版本,那么你需要使用 PaginationInterceptor,它是專門用于處理分頁(yè)邏輯的攔截器,在早期版本中,作為一個(gè)單獨(dú)的插件提供分頁(yè)功能,在Springboot框架下的應(yīng)該采用如下方式進(jìn)行配置:
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * mybatis-plus配置 */@ConfigurationpublicclassMybatisPlusConfig { /** * 添加分頁(yè)插件 */@Beanpublic PaginationInterceptor paginationInterceptor() { returnnewPaginationInterceptor(); } }
三、使用MybatisPlusInterceptor
- 適用于 MyBatis-Plus 3.4.0 之后的版本
從 MyBatis-Plus 3.4.0 版本開(kāi)始,官方推薦使用 MybatisPlusInterceptor
來(lái)替代舊版本中的 PaginationInterceptor
。MybatisPlusInterceptor作為一個(gè)繼集成了多種功能功能的攔截器,
支持多種插件,如分頁(yè)插件、性能分析插件等,通過(guò)調(diào)用addInnerInterceptor()方法來(lái)使該攔截器具備各種功能。以下是官方文檔中在SpringBoot框架下進(jìn)行分頁(yè)插件配置的方式
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * mybatis-plus配置 */@ConfigurationpublicclassMybatisPlusConfig { /** * 添加分頁(yè)插件 */@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptorinterceptor=newMybatisPlusInterceptor(); // 添加分頁(yè)插件, 如果配置多個(gè)插件, 切記分頁(yè)最后添加 interceptor.addInnerInterceptor(newPaginationInnerInterceptor(DbType.MYSQL)); // 如果有多數(shù)據(jù)源可以不配具體類型, 否則都建議配上具體的 DbTypereturn interceptor; }
四、兩種攔截器的對(duì)比
1. PaginationInterceptor:
- 主要關(guān)注于分頁(yè)功能,適用于只需要簡(jiǎn)單的分頁(yè)邏輯的應(yīng)用場(chǎng)景
2. MybatisPlusInterceptor:
- 分頁(yè)插件:實(shí)現(xiàn)分頁(yè)邏輯
- 性能分析插件:幫助監(jiān)控 SQL 執(zhí)行時(shí)間。
- SQL 注入防護(hù)插件:提高應(yīng)用安全性。
- 多租戶插件:支持多租戶架構(gòu)下的數(shù)據(jù)隔離。
- 樂(lè)觀鎖插件:簡(jiǎn)化并發(fā)控制。
五、總結(jié)及建議
如果你正在開(kāi)發(fā)或維護(hù)一個(gè)基于 MyBatis-Plus 3.4.0 之前的項(xiàng)目,并且你的需求僅僅是分頁(yè)功能,那么 PaginationInterceptor
就足夠了。
對(duì)于 MyBatis-Plus 3.4.0 及之后的版本,官方推薦使用 MybatisPlusInterceptor
,因?yàn)樗峁┝烁叩撵`活性和更多的內(nèi)置功能,可以根據(jù)實(shí)際需要輕松擴(kuò)展應(yīng)用的功能。
到此這篇關(guān)于MyBatis-Plus 分頁(yè)插件配置的兩種方式實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MyBatis-Plus 分頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mybatis-Plus 多表聯(lián)查分頁(yè)的實(shí)現(xiàn)代碼
- Mybatis-plus新版本分頁(yè)失效PaginationInterceptor過(guò)時(shí)的問(wèn)題
- MyBatis-Plus 分頁(yè)查詢以及自定義sql分頁(yè)的實(shí)現(xiàn)
- mybatis-plus分頁(yè)傳入?yún)?shù)后sql where條件沒(méi)有l(wèi)imit分頁(yè)信息操作
- mybatis-plus分頁(yè)查詢的實(shí)現(xiàn)示例
- MyBatis-Plus分頁(yè)插件不生效的解決方法
- MyBatis-Plus實(shí)現(xiàn)2種分頁(yè)方法(QueryWrapper查詢分頁(yè)和SQL查詢分頁(yè))
- MyBatis-Plus分頁(yè)時(shí)排序的實(shí)現(xiàn)方法
- 解決mybatis-plus3.4.1分頁(yè)插件PaginationInterceptor和防止全表更新與刪除插件SqlExplainInterceptor過(guò)時(shí)失效問(wèn)題
- Mybatis-Plus中分頁(yè)插件PaginationInterceptor的使用
- 一文搞懂Mybatis-plus的分頁(yè)查詢操作
相關(guān)文章
Java timezone設(shè)置和mybatis連接數(shù)據(jù)庫(kù)時(shí)區(qū)設(shè)置方式
這篇文章主要介紹了Java timezone設(shè)置和mybatis連接數(shù)據(jù)庫(kù)時(shí)區(qū)設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09java連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)單條插入和批量插入
這篇文章主要為大家詳細(xì)介紹了java連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)單條插入和批量插入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08解決SpringBoot webSocket 資源無(wú)法加載、tomcat啟動(dòng)報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決SpringBoot webSocket 資源無(wú)法加載、tomcat啟動(dòng)報(bào)錯(cuò)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Java Scanner對(duì)象中hasNext()與next()方法的使用
這篇文章主要介紹了Java Scanner對(duì)象中hasNext()與next()方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10java高級(jí)用法之JNA中的回調(diào)問(wèn)題
這篇文章主要介紹了java高級(jí)用法之:JNA中的回調(diào),為了方便和native方法進(jìn)行交互,JNA中同樣提供了Callback用來(lái)進(jìn)行回調(diào),JNA中回調(diào)的本質(zhì)是一個(gè)指向native函數(shù)的指針,通過(guò)這個(gè)指針可以調(diào)用native函數(shù)中的方法,一起來(lái)看看吧2022-05-05springboot+websocket+redis搭建的實(shí)現(xiàn)
這篇文章主要介紹了springboot+websocket+redis搭建的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04IDEA打開(kāi)java項(xiàng)目后里面的java文件不能運(yùn)行解決辦法
這篇文章主要給大家介紹了關(guān)于IDEA打開(kāi)java項(xiàng)目后里面的java文件不能運(yùn)行的解決辦法,有時(shí)候想運(yùn)行別人的項(xiàng)目,但是別人的項(xiàng)目并非IDEA項(xiàng)目(甚至只有源碼),當(dāng)我們打開(kāi)項(xiàng)目時(shí)候,并不能運(yùn)行,需要的朋友可以參考下2023-10-10