这个问题困扰我快一个月了,终于在今天解决了。
通常我们在使用mybatis的分页插件时,会在mybatis的配置文件中进行配置如下代码:
<!-- 配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型 Mysql -->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
这是正确的,但是有一个前提pagehelper依赖的jar的版本得是 <pagehelper.version>3.4.2-fix</pagehelper.version>.
但是我所使用的jar版本是5.0.0的,导致我在运行项目的时候报错,到今天才解决。请看下面报错:
Cause: java.lang.ClassCastException:
com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor
然后我找到PageHelper查看源代码确实发现没有实现Interceptor
然后发现PageInterceptor实现了Interceptor:
所有呢解决方法修改mybatis的配置文件:
<!-- 配置分页插件 -->
<plugins>
<!-- <plugin interceptor="com.github.pagehelper.PageHelper"> -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型 Mysql -->
<!-- <property name="dialect" value="mysql"/> -->
</plugin>
</plugins>
仔细看发现注释了<property name="dialect" value="mysql"/>.这是因为PageHelper插件5.0.0以后的版本支持自动识别使用的数据库,可以不用配置。
再次运行,一切正常
以上就是pagehelper3.4.2-fix版本和pagehelper5.0.0版本的区别。