mybatis mysql 分页插件_使用MyBatis分页插件PageHelper遇到的问题

在学习e-shop项目时,遇到MyBatis分页插件PageHelper使用异常。错误提示涉及PageHelper的Interceptor实现及类加载问题。通过检查PageHelper版本和源码,发现PageHelper 5.0.0版本的Interceptor实现有误。修改SqlMapConfig.xml配置后,又出现'sqlSessionFactory'异常,进一步排查发现缺少mysql相关类。最终尝试使用PageHelper 4.0.0版本,项目正常运行。解决过程中还提及了Tomcat运行时的日志异常处理。
摘要由CSDN通过智能技术生成

最近在学习一个项目,就是网上流传的e-shop,学到使用分页插件的时候,突然卡主了,我都跟着视频走的,出现这种问题,真的是一脸懵 X,要知道这种整合项目中出现异常,要不就是jar包冲突,要不就是配置文件哪个地方不对,这样找起来,没有头绪,简直就是折腾,最开始我的mybatis全局配置文件是这样写的:

250592e33bcf2cb5090cbd5e766563b7.png

运行taotao-manager出现以下异常:

fba01e27bc92bd56f913f4bf40631ec0.png

后面还有一行关键描述:

Cause: java.lang.ClassCastException: com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor

意思就是说这个分页插件的Interceptor没有被实现

看一下我的pagehelper的版本  以及com.github.pagehelper.PageHelper类

d0e7bab368b36f1dc7f3d5235fcc2a8c.png

pageHelper是如何在mybatis中工作呢,是通过mybatis的pulgin实现了Interceptor接口,从而获得要执行的sql语句实现分页技术,而我们的PageHelper5.0.0版本中的这个类,并没有出现implements Interceptor,我们再来看下pagehelper这个包下的其他类,我们发现,有个类很像我们要的,我们进去一看,果然是它:

879862cfa76c3e8e41355a5634148e18.png

因此,我们修改我们的mybatis全局配置文件SqlMapConfig.xml如下:

5ab11a697c81dbeac18e395617dbb787.png

我们再次启动我们的项目:

f53867d1678bc02f65bd0b841f5c6f79.png

我去,这个会话工程"sqlSessionFactory"怎么又出来了,我们往后翻,发现有个关键描述:

Error parsing SQL Mapper Configuration. Cause: com.github.pagehelper.PageException: java.lang.ClassNotFoundException: mysql

没有发现mysql这个类,太折腾了,我也不想检查其他jar包是否版本不对了,这个后面有时间再去研究,网上说,PageHelper插件4.0.0以后的版本支持自动识别使用的数据库,可以不用配置     这,抱着侥幸的心理,我再一次试了试:

83cfa453df46dc2bcffde6a4ccb3923d.png

没问题了,项目正常跑起来了

0d58d9e4c8d4a7699c61c75cdf53d2ae.png

1a3b0aff8b65565e297b8a1ed6bdbad5.png

94a4ab4a793ebcd8bfaf1d4facdad746.png

附录:

使用tomcat插件运行的时候可能会出现日志打印方面的异常:

7cc2b9023e90fbe614f7392ccaa62c89.png

这时候在Test测试类中加下面这行代码就可以了;

BasicConfigurator.configure();

其实还有一种方式,就是写入绝对路径中,这里不做研究,感兴趣的可以自行搜索

引用博客:   http://blog.csdn.net/appleyk/article/details/77318175

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值