最近升级 MyBatis Plus 到 3.5.9 版本的朋友可能注意到了,`PaginationInnerInterceptor`突然“消失”了,分页功能用不起来了。好消息是,它其实没被砍掉,只是MyBatis Plus进行了分页模块的拆分。下面简单讲讲怎么手动处理这个问题,恢复分页功能。
1. 为什么还要手动加依赖?
在3.5.9版本中,MyBatis Plus 对组件做了拆分,比如分页功能依赖的 `jsqlparser` 被单独拆成了 `mybatis-plus-jsqlparser` 包。要想让分页功能跑起来,咱们得手动添加这个依赖,否则 `PaginationInnerInterceptor` 会找不到所需的解析工具。
2. 直接上代码,手动引入依赖
对于Maven项目,可以直接在`pom.xml`文件里添加以下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>3.5.9</version> <!-- 确保版本和 MyBatis Plus 主包一致 -->
</dependency>
对于Gradle用户,添加方法如下:
implementation 'com.baomidou:mybatis-plus-jsqlparser:3.5.9'
3. 为什么要用 `jsqlparser`?
简单讲,`jsqlparser` 能解析更复杂的 SQL 语句,而MyBatis Plus 的分页功能需要用到它。如果你只处理简单查询,可能没啥感觉,但如果项目里有比较复杂的 SQL,`jsqlparser` 就能帮忙搞定分页解析问题。
4. 最后的小提醒
保持版本一致:这个拆分在3.5.9引入的,所以如果你用的主库是3.5.9,那么这里的 `mybatis-plus-jsqlparser` 也得是3.5.9,确保依赖版本一致。
测试一下分页查询:最后升级完别忘了在测试环境下检查分页功能是否正常,尤其是复杂查询。
这就是3.5.9之后手动处理`PaginationInnerInterceptor`的问题,虽然稍微麻烦点,但其实并不难,大家可以试试看。