开发学院

您的位置:首页>技术文章>正文

技术文章

MyBatis-Plus升级踩坑记录:一个依赖缺失引发的“惨案”

开发学院2025-12-14 17:54:16
本文记录了一次从 Java 8 + Spring Boot 2.x 升级到 Java 21 + Spring Boot 3.5.0 的踩坑实录。整个过程耗时 4+ 小时,网上搜到很多记录都是人云亦云,ai也是给出各种跑偏的方案,包括且不限于IDEA版本、Maven缓存、Maven 依赖树一路跑偏,最终解决也很简单。记录一下希望这篇心得能让后来者10 分钟解决同样问题。

  本文记录了一次从 Java 8 + Spring Boot 2.x 升级到 Java 21 + Spring Boot 3.5.0 的踩坑实录。整个过程耗时 4+ 小时,网上搜到很多记录都是人云亦云,ai也是给出各种跑偏的方案,包括且不限于IDEA版本、Maven缓存、Maven 依赖树一路跑偏,最终解决也很简单。记录一下希望这篇心得能让后来者10 分钟解决同样问题。

问题现象

  升级后启动项目,MybatisPlus分页插件配置类直接编译报错:

import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;  // ❌ 找不到符号

错误信息:

java: 找不到符号

  符号:   类 MybatisPlusInterceptor

  位置: 程序包 com.baomidou.mybatisplus.extension.plugins

排查弯路

  第一轮:怀疑 Lombok & Java 21 兼容性问题

  操作:升级 Lombok 到 1.18.30+,清理 IDEA 缓存,Maven 强制刷新

  结果:无效,错误依旧

  误判:以为是 Java 21 字节码或 IDEA 索引问题

  第二轮:怀疑依赖下载失败

  操作:手动删除 Maven 本地仓库,reimport,检查 External Libraries

  结果:mybatis-plus-extension-3.5.12.jar 确认存在,右键能打开源码

  误判:以为是 Maven 或 IDEA 的 classpath 加载 bug

  第三轮:怀疑模板引擎污染

  操作:排查 Velocity、代码生成器模板冲突

  结果:完全无关

  误判:以为是代码生成器依赖和核心依赖冲突

  第四轮:AI开始鬼扯编辑器有问题,让手动引入依赖,有给出很多不靠谱的建议。


最后通过网络搜索很多结果后才发现靠谱的建议,MyBatis-Plus 3.5.9 版本开始,分页插件依赖的 jsqlparser 被拆分为独立模块,官方文档未明确说明,导致升级后必须手动引入。

  MyBatis-Plus 核心包(mybatis-plus-extension)在 3.5.9 后不再包含PaginationInnerInterceptor,要使用它还要单独引用mybatis-plus-jsqlparser

  在 pom.xml 中单独添加 mybatis-plus-jsqlparser 依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-jsqlparser</artifactId>
    <version>3.5.12</version>  <!-- 版本与 mybatis-plus 保持一致 -->
</dependency>

  刷新 Maven,问题解决。

  AI确实可以提升不少效率,但是一旦它开始胡言乱语,真的会浪费很多时间,这个时间比自己找原因还要久,使用AI还是要慎重。