问题
最近遇到的一个项目升级了SpringBoot到3.x版本了,同时也准备升级MyBatis-Plus,即使用如下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.7</version>
</dependency>
没想道,升级完MyBatis-Plus之后。PageHelper就不能用了。PageHelper目前也是用的最新的,具体配置如下:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
原因
MyBatis-Plus和PageHelper都同时使用到一个jsqlparser的依赖库,然后,PageHelper要求使用的版本与jsqlparser版本有一个对应关系。具体对应关系,具体如下:
6.1版本PageHelper使用的jsqlparser库版本是4.7,具体如下:
所以,只要保持项目中jsqlparser库是4.7版本就可以了。
解决
具体做法,就是将MyBatis-Plus与PageHelper中的jsqlparser库排除后,再指定使用jsqlparser4.7就可以了。具体配置如下:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.7</version>
<exclusions>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>2.1.0</version>
<exclusions>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.7</version>
</dependency>
总结
MyBatis-Plus与PageHelper最好别一起用。