博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis中同时使用shardbatis和pagehelper插件冲突问题
阅读量:5045 次
发布时间:2019-06-12

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

  在一次使用mybatis的插件,分表shardbatis+分页pagehelper共同使用的时候,会抛出以下异常:

java.lang.NoSuchMethodError: net.sf.jsqlparser.util.deparser.StatementDeParser.
(Ljava/lang/StringBuffer;)V at com.google.code.shardbatis.converter.AbstractSqlConverter.doDeParse(AbstractSqlConverter.java:28) at com.google.code.shardbatis.converter.AbstractSqlConverter.convert(AbstractSqlConverter.java:19) at com.google.code.shardbatis.converter.SqlConverterFactory.convert(SqlConverterFactory.java:78) at com.google.code.shardbatis.plugin.ShardPlugin.intercept(ShardPlugin.java:68) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:60)

  但是,这个错只有在junit测试的时候才会报出,而tomcat启动,页面调用,则不会报错!!!!

  查看StatementDeParser类中,存在"上面提示不存在的方法",那到底是什么原因?

  突然一想,刚刚在搜索StatementDeParser类的时候,发现存在0.8.0和0.9.5两个版本的包,猜想也许是这个问题导致的。

  查看pom.xml配置如下:

     
com.github.pagehelper
pagehelper
4.1.6
org.shardbatis
shardbatis
2.0.0B
net.sf.jsqlparser
jsqlparser
0.8.0

  这时候,可以看到maven依赖的包里,存在两个jsqlparser.jar

  

  jsqlparser-0.9.5.jar从何而来???原来pagehelper中存在pom.xml,会自动引入0.9.5版本的包

  

  于是,我将pom.xml中pagehelper的依赖项注释掉,这时候,只有下面两个包

  

  再运行测试用例,执行成功!!!

  可是,我必须要同时使用两个插件,怎么办???只好将pagehelper的依赖项移到最下面

  

  再次运行,依然执行成功,问题解决!

 

转载于:https://www.cnblogs.com/handsomeye/p/6279382.html

你可能感兴趣的文章
C - A Plug for UNIX - poj 1087(最大流)
查看>>
UNICODE与ANSI的区别
查看>>
代码备份2
查看>>
工作流基本特性及说明
查看>>
高手给菜鸟学习Linux的10个建议
查看>>
洗牌算法Fisher_Yates原理
查看>>
functools 之 partial(偏函数)
查看>>
多线程2--毕向东基础视频教程学习笔记
查看>>
结对第二次作业
查看>>
jQuery 1.7的隐藏改动
查看>>
初学ant
查看>>
bzoj 4295 [PA2015]Hazard 贪心,暴力
查看>>
HTML5实践 -- 使用css装饰你的图片画廊
查看>>
软件工程总结
查看>>
解决PowerDesigner 16 Generate Datebase For Sql2005/2008 对象名sysproperties无效的问题
查看>>
learning ddr seft-refresh mode summary
查看>>
30款超酷的HTTP 404页面未找到错误设计
查看>>
【简报】kube框架结构-一个小型响应式CSS框架
查看>>
帮助快速生成页面固定显示元素的jQuery插件 - sticky-kit
查看>>
Java IO-6 打印流
查看>>