博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis分页插件PageHelper-5.1.1
阅读量:6842 次
发布时间:2019-06-26

本文共 2386 字,大约阅读时间需要 7 分钟。

PageHelper-5.1.1和PageHelper-4.0.0是有区别的

PageHelper-4.0.0的版本时,Mybatis全局配置文件SqlMapConfig.xml的内容是:

当我PageHelper的版本改为5.1.1时,tomcat启动报错:

image
java.lang.ClassCastException: com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor
这句报错信息说明PageHelper这个类没有实现Interceptor这个接口,我们看下源码:

package com.github.pagehelper;import com.github.pagehelper.dialect.AbstractHelperDialect;import com.github.pagehelper.page.PageAutoDialect;import com.github.pagehelper.page.PageMethod;import com.github.pagehelper.page.PageParams;import com.github.pagehelper.util.StringUtil;import java.util.List;import java.util.Properties;import org.apache.ibatis.cache.CacheKey;import org.apache.ibatis.mapping.BoundSql;import org.apache.ibatis.mapping.MappedStatement;import org.apache.ibatis.session.RowBounds;public class PageHelper extends PageMethod implements Dialect {    private PageParams pageParams;    private PageAutoDialect autoDialect;    public PageHelper() {    }

PageHelper可以看到,这个类并没有实现Interceptor这个接口

在这里我们要了解下PageHelper在Mybatis中是如何工作的:
通过mybatis的pulgin实现了Interceptor接口,从而获得要执行的sql语句实现分页技术,而我们的PageHelper5.1.1版本中的这个类,并没有出现implements Interceptor,找找pagehelper这个包下的其他类
image
PageInterceptor类内容如下:

package com.github.pagehelper;@Intercepts({@Signature(    type = Executor.class,    method = "query",    args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}), @Signature(    type = Executor.class,    method = "query",    args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class})})public class PageInterceptor implements Interceptor {    protected Cache
msCountMap = null; private Dialect dialect; private String default_dialect_class = "com.github.pagehelper.PageHelper"; private Field additionalParametersField; private String countSuffix = "_COUNT"; public PageInterceptor() { }

PageInterceptor实现了Interceptor接口

将SqlMapConfig.xml做修改:

重新运行tomcat

然后。。。
image
网上找的:PageHelper插件4.0.0以后的版本支持自动识别使用的数据库,可以不用配置

将SqlMapConfig.xml做修改:

再次重新运行tomcat

image
成功了!
结束

转载地址:http://mhdul.baihongyu.com/

你可能感兴趣的文章
网络相关排查总结
查看>>
C++错误收集(2)
查看>>
博客园的老虞要搬家罗
查看>>
Data Pump需要用到steam pool
查看>>
异步7月上市新书,送出一本你爱的
查看>>
如何查看、管理npm模块--react-native为例
查看>>
归档及压缩
查看>>
Redis基础及与spring的整合总结
查看>>
小型公司局域网故障排查(思科)
查看>>
搭建Mysql数据库
查看>>
构建Squid传统代理及透明代理
查看>>
Ejecta (HTML5 Canvas加速引擎)
查看>>
数据备份与恢复
查看>>
【比原链】比原链合约入门
查看>>
PLSQL Developer连接Oracle11g 64位数据库配置详解
查看>>
什么是最有效的ddos混合防御方法?
查看>>
系统录音软件哪个好用,怎么录制系统声音
查看>>
【JS框架】【Cocos2d-javascript】入门教程三部曲【注:教程已过时】
查看>>
This certificate was signed by an unkown authority
查看>>
Java中常用的锁机制
查看>>