最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis-Plus?3.5.12?分頁攔截器消失的問題及快速解決方法

 更新時(shí)間:2025年08月09日 15:37:05   作者:一葉飄零_sweeeet  
作為Java開發(fā)者,我們都愛用Mybatis-Plus簡(jiǎn)化CRUD操作,尤其是它的分頁功能,幾行代碼就能搞定復(fù)雜的分頁查詢,本文給大家介紹Mybatis-Plus3.5.12分頁攔截器消失的問題快速解決方法,感興趣的朋友跟隨小編一起看看吧

作為 Java 開發(fā)者,我們都愛用 Mybatis-Plus 簡(jiǎn)化 CRUD 操作,尤其是它的分頁功能,幾行代碼就能搞定復(fù)雜的分頁查詢。但最近有位朋友在集成 Mybatis-Plus 3.5.12 版本時(shí)踩了個(gè)坑:PaginationInnerInterceptor類突然找不到了!這篇文章就來聊聊這個(gè)問題的來龍去脈,教你快速解決,還會(huì)附贈(zèng)分頁功能的完整使用指南。

一、問題場(chǎng)景:分頁攔截器突然 “失蹤”

先看一段熟悉的配置代碼,這是我們常用的 Mybatis-Plus 分頁配置:

package com.xx.config.mybatis;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan({"com.sq.twinbee.**.mapper"})
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加分頁攔截器
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}

當(dāng)使用 Mybatis-Plus 3.5.12 版本時(shí),IDE 突然報(bào)錯(cuò):PaginationInnerInterceptor類不存在!這是怎么回事?明明之前的版本用得好好的,難道是版本升級(jí)后類被移除了?

二、問題根源:依賴拆分惹的禍

其實(shí)不是類被移除了,而是 Mybatis-Plus 在 3.5.0 版本后對(duì)依賴進(jìn)行了拆分。在早期版本中,分頁插件和核心包是捆綁在一起的,但從 3.5.0 開始,官方將一些擴(kuò)展功能(包括分頁插件)單獨(dú)拆分成了mybatis-plus-extension模塊。

如果你在 pom.xml 中只引入了核心包:

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
<version>3.5.12</version>
</dependency>

就會(huì)找不到PaginationInnerInterceptor,因?yàn)樗呀?jīng)被移到mybatis-plus-extension里了。

三、解決辦法:添加擴(kuò)展依賴

只需在 pom.xml 中添加mybatis-plus-extension依賴,問題就能迎刃而解:

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.12</version>
</dependency>

為什么這行依賴能解決問題?

  • mybatis-plus-extension是 Mybatis-Plus 的擴(kuò)展模塊,包含了分頁插件、性能分析插件等增強(qiáng)功能
  • 3.5.12 版本嚴(yán)格遵循 “按需引入” 原則,核心包只保留最基礎(chǔ)的 CRUD 功能
  • 擴(kuò)展模塊與核心包版本必須保持一致,否則可能出現(xiàn)兼容性問題

四、分頁功能完整使用指南

解決了依賴問題,我們?cè)賮硗暾崂硪幌?Mybatis-Plus 分頁功能的使用步驟,確保新手也能快速上手。

步驟 1:配置分頁攔截器

就是我們開頭提到的配置類,這里再?gòu)?qiáng)調(diào)幾個(gè)注意點(diǎn):

@Configuration
@MapperScan({"com.xx.**.mapper"}) // 掃描Mapper接口所在包
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 注意:這里可以指定數(shù)據(jù)庫類型,避免分頁語句適配問題
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}

關(guān)鍵說明

  • 建議明確指定數(shù)據(jù)庫類型(如DbType.MYSQL),Mybatis-Plus 會(huì)根據(jù)數(shù)據(jù)庫類型生成對(duì)應(yīng)的分頁 SQL(MySQL 用 LIMIT,Oracle 用 ROWNUM)
  • 攔截器可以添加多個(gè),比如同時(shí)添加分頁攔截器和樂觀鎖攔截器

步驟 2:編寫 Mapper 接口

無需手動(dòng)寫分頁 SQL,直接繼承BaseMapper即可:

public interface UserMapper extends BaseMapper<User> {
// 自定義分頁查詢(可選)
IPage<User> selectUserByAge(Page<User> page, @Param("age") Integer age);
}

步驟 3:Service 層調(diào)用

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> getUserPage(Integer pageNum, Integer pageSize) {
// 創(chuàng)建分頁對(duì)象
Page<User> page = new Page<>(pageNum, pageSize);
// 調(diào)用BaseMapper的selectPage方法
return baseMapper.selectPage(page, null);
}
@Override
public IPage<User> getUserByAge(Integer pageNum, Integer pageSize, Integer age) {
Page<User> page = new Page<>(pageNum, pageSize);
// 調(diào)用自定義分頁方法
return baseMapper.selectUserByAge(page, age);
}
}

步驟 4:Controller 層使用

@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/page")
public Result<IPage<User>> getUserPage(
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
IPage<User> page = userService.getUserPage(pageNum, pageSize);
return Result.success(page);
}
}

步驟 5:分頁結(jié)果解析

分頁查詢返回的IPage對(duì)象包含了豐富的分頁信息:

{
"code": 200,
"msg": "success",
"data": {
"records": [
{"id": 1, "name": "張三", "age": 20},
{"id": 2, "name": "李四", "age": 22}
],
"total": 100, // 總記錄數(shù)
"size": 10, // 每頁條數(shù)
"current": 1, // 當(dāng)前頁碼
"pages": 10, // 總頁數(shù)
"hasNext": true, // 是否有下一頁
"hasPrevious": false // 是否有上一頁
}
}

五、常見問題排查

  • 分頁不生效?
    • 檢查是否配置了分頁攔截器
    • 確認(rèn)依賴是否正確引入
    • 查看是否有多個(gè)攔截器沖突
  • 分頁語句錯(cuò)誤?
    • 確保指定了正確的數(shù)據(jù)庫類型
    • 檢查實(shí)體類與表結(jié)構(gòu)映射是否正確
  • 依賴沖突?
    • 用mvn dependency:tree查看依賴樹,排除沖突版本
    • 確保 Mybatis-Plus 各模塊版本一致

六、總結(jié)

Mybatis-Plus 的分頁功能大大簡(jiǎn)化了我們的開發(fā)工作,但版本升級(jí)帶來的依賴變化可能會(huì)讓新手踩坑。記住 3.5.x 版本后需要單獨(dú)引入mybatis-plus-extension依賴才能使用分頁攔截器,這是解決PaginationInnerInterceptor類不存在問題的關(guān)鍵。

希望這篇文章能幫你徹底搞懂 Mybatis-Plus 分頁功能的配置和使用,如果你還有其他相關(guān)問題,歡迎在評(píng)論區(qū)交流!

到此這篇關(guān)于Mybatis-Plus 3.5.12 分頁攔截器消失的文章就介紹到這了,更多相關(guān)MybatisPlus 分頁攔截器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot 跨域問題的解決方案

    SpringBoot 跨域問題的解決方案

    這篇文章主要介紹了SpringBoot 跨域問題的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • SpringBoot集成E-mail發(fā)送各種類型郵件

    SpringBoot集成E-mail發(fā)送各種類型郵件

    這篇文章主要為大家詳細(xì)介紹了SpringBoot集成E-mail發(fā)送各種類型郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • springboot @ComponentScan注解原理解析

    springboot @ComponentScan注解原理解析

    這篇文章主要介紹了springboot @ComponentScan注解原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼

    使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼

    這篇文章主要介紹了使用?mybatis?自定義日期類型轉(zhuǎn)換器的示例代碼,這里使用mybatis中的typeHandlers?實(shí)現(xiàn)的,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Java?并發(fā)編程之ForkJoin框架

    Java?并發(fā)編程之ForkJoin框架

    這篇文章主要為大家介紹了Java?ForkJoin框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助,希望能夠給你帶來幫助
    2021-11-11
  • 基于Java實(shí)現(xiàn)簡(jiǎn)易的七星彩號(hào)碼生成器

    基于Java實(shí)現(xiàn)簡(jiǎn)易的七星彩號(hào)碼生成器

    七星彩是中國(guó)體育彩票的一種玩法,由中國(guó)國(guó)家體育總局體育彩票管理中心統(tǒng)一發(fā)行。本文為大家準(zhǔn)備了一個(gè)七星彩號(hào)碼生成器Java工具類,感興趣的可以了解一下
    2022-08-08
  • 解決Mybatis返回update后影響的行數(shù)問題

    解決Mybatis返回update后影響的行數(shù)問題

    這篇文章主要介紹了解決Mybatis返回update后影響的行數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Java利用AQS實(shí)現(xiàn)自定義鎖

    Java利用AQS實(shí)現(xiàn)自定義鎖

    本文主要介紹了Java利用AQS實(shí)現(xiàn)自定義鎖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • HashSet底層竟然是HashMap實(shí)現(xiàn)問題

    HashSet底層竟然是HashMap實(shí)現(xiàn)問題

    這篇文章主要介紹了HashSet底層竟然是HashMap實(shí)現(xiàn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中API的使用方法詳情

    Java中API的使用方法詳情

    這篇文章主要介紹了Java中API的使用方法詳情,指的就是?JDK?中提供的各種功能的?Java類,這些類將底層的實(shí)現(xiàn)封裝了起來,我們不需要關(guān)心這些類是如何實(shí)現(xiàn)的,只需要學(xué)習(xí)這些類如何使用即可,我們可以通過幫助文檔來學(xué)習(xí)這些API如何使用,需要的朋友可以參考下
    2022-04-04

最新評(píng)論

双流县| 巴彦县| 贞丰县| 获嘉县| 拉孜县| 西盟| 瓦房店市| 白河县| 监利县| 文安县| 安岳县| 东至县| 罗甸县| 古蔺县| 中阳县| 丰县| 福州市| 琼海市| 和政县| 衡阳市| 开化县| 瑞昌市| 文登市| 绥化市| 邯郸市| 顺昌县| 奈曼旗| 页游| 修水县| 宁南县| 新干县| 谢通门县| 上杭县| 海丰县| 岳池县| 南京市| 蕉岭县| 黄陵县| 梅河口市| 新安县| 顺昌县|