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