mybatis-spring整合过程中AbstractMethodError

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-spring整合过程中AbstractMethodError相关的知识,希望对你有一定的参考价值。

在整合mybatis和spring的demo中,依赖包均有导入,但控制台依然有报java.lang.AbstractMethodError的错误,刚开始以为是类型转换错误,仔细看却发现问题出现在org.mybatis.spring.SqlSession上,具体错误如下:

Exception in thread "main" java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;
    at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85)
    at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
    at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)
    at com.sun.proxy.$Proxy0.selectOne(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:163)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:82)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    at com.sun.proxy.$Proxy1.findAccountById(Unknown Source)
    at com.frend.Test.main(Test.java:70)
  • 仔细查看后,怀疑是mybatis-spring的包问题,所以直接上官网查询。
  • 发现官网对mybatis-spring、spring、mybatis三个类型包的版本要求有所说明,具体如下:

(官网链接:http://www.mybatis.org/spring/
技术图片

  • 根据自己的spring和mybatis的版本,我重新下载了mybatis-spring-1.3.0.jar,导入运行,正常

以上是关于mybatis-spring整合过程中AbstractMethodError的主要内容,如果未能解决你的问题,请参考以下文章

mybatis-spring 整合

MyBatis-Spring整合之方式1

mybatis-spring整合

MyBatis-Spring整合之方式3

MyBatis-Spring整合之方式2

Spring-整合Mybatis