MyBatis-Plus?Page?分頁不生效的問題解決
1、可能原因
1)版本過低
2)需要增加 MybatisPlusInterceptor 配置
2、處理
1)引包,使用3.4.0 版本
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency>
2)配置, 根據(jù)使用的數(shù)據(jù)庫類型可自行更改DbType
@Configuration public class MyBatisPlusConfig { /** * 插件配置 * * @return */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 向MyBatis-Plus的過濾器鏈中添加分頁攔截器,需要設(shè)置數(shù)據(jù)庫類型(主要用于分頁方言) // pg使用 //interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL)); // mysql使用 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 添加樂觀鎖攔截器 interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return interceptor; } }
補:其他原因
1、分頁插件未配置:
確保你已經(jīng)在 MyBatis-Plus 的配置中添加了分頁插件。如果你使用的是 Spring Boot,通常是在 MybatisPlusConfig 類中添加分頁插件的 Bean。
@Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }
SQL 映射文件或 Mapper 接口中的方法問題:
如果你在 XML 映射文件中寫了自定義的 SQL,確保你沒有手動寫 LIMIT 和 OFFSET。分頁插件會自動為你處理這些。
這里還特別需要注意一下3.4版本里可能上面的配置方式不生效,可以嘗試下面的配置方式
@Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; }
2、調(diào)用方法時未正確設(shè)置 Page 對象:
在調(diào)用分頁方法之前,你需要創(chuàng)建一個 Page 對象并設(shè)置當(dāng)前頁和每頁顯示的記錄數(shù)。
Page<User> page = new Page<>(1, 10); // 第一頁,每頁10條記錄 IPage<User> userPage = userMapper.selectPage(page, null); // 假設(shè)沒有查詢條件 List<User> userList = userPage.getRecords(); // 獲取分頁結(jié)果
3、版本沖突或配置問題:
確保你使用的 MyBatis-Plus 版本與其他依賴庫沒有沖突,并且你的項目配置是正確的。
4、檢查數(shù)據(jù)庫和表:
確保你的數(shù)據(jù)庫和表支持分頁查詢(例如,MySQL 支持 LIMIT 和 OFFSET)。
查看日志:
開啟 MyBatis 的日志功能,查看生成的 SQL 語句是否包含了 LIMIT 和 OFFSET。這可以幫助你確認(rèn)分頁插件是否已被正確調(diào)用。
事務(wù)管理:
如果你在使用事務(wù),確保分頁查詢是在事務(wù)的上下文中正確執(zhí)行的。
5、其他插件或攔截器沖突:
如果你的項目中使用了其他 MyBatis 插件或攔截器,確保它們之間沒有沖突。
到此這篇關(guān)于MyBatis-Plus Page 分頁不生效的問題解決的文章就介紹到這了,更多相關(guān)MyBatis-Plus Page 分頁不生效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MybatisPlus實現(xiàn)分頁效果并解決錯誤問題:cant?found?IPage?for?args
- Mybatis-plus的selectPage()分頁查詢不生效問題解決
- Mybatis-Plus或PageHelper多表分頁查詢總條數(shù)不對問題的解決方法
- mybatis-plus分頁如何接收前端參數(shù)limit和page
- 淺談mybatisPlus的Ipage分頁和map參數(shù)的問題
- Springboot中MyBatisplus使用IPage和Page分頁的實例代碼
- 解決mybatis plus 分頁查詢有條數(shù),total和pages都是零的問題
- Mybatis Plus整合PageHelper分頁的實現(xiàn)示例
相關(guān)文章
Java流程控制之循環(huán)結(jié)構(gòu)while、do...while
這篇文章主要介紹了Java流程控制之循環(huán)結(jié)構(gòu)while及do...while,文章除了講解循環(huán)結(jié)構(gòu)while和do...while之外,還講解了他們之間的區(qū)別,下面我們就一起進入文章講解更多詳細(xì)內(nèi)容吧2021-12-12Java并發(fā)編程示例(七):守護線程的創(chuàng)建和運行
這篇文章主要介紹了Java并發(fā)編程示例(七):守護線程的創(chuàng)建和運行,在本節(jié)示例中,我們將創(chuàng)建兩個線程,一個是普通線程,向隊列中寫入事件,另外一個是守護線程,清除隊列中的事件,需要的朋友可以參考下2014-12-12SpringBoot+thymeleaf+ajax實現(xiàn)局部刷新詳情
這篇文章主要介紹了SpringBoot+thymeleaf+ajax實現(xiàn)局部刷新詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09Java Caledar類(日歷類)如何判斷本周周數(shù)
這篇文章主要介紹了Java Caledar類(日歷類)如何判斷本周周數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Spring Boot整合RabbitMQ開發(fā)實戰(zhàn)詳解
這篇文章主要介紹了Spring Boot整合RabbitMQ開發(fā)實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02