maven工程报错:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.get

本文解决了在Maven项目中整合Spring和MyBatis时出现的AbstractMethodError问题,通过调整mybatis-spring整合包版本从1.2.2升级到1.3.0及以上版本成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.youkuaiyun.com/maoyuanming0806/article/details/77689170

                    版权声明:                        https://blog.youkuaiyun.com/maoyuanming0806/article/details/77689170                    </div>
                                                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
                                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
            <div class="htmledit_views" id="content_views">

在maven项目,在整合spring和mybatis在执行数据库操作的时候报出了:

java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;


 
  1. at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java: 85)
  2. at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java: 49)
  3. at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java: 117)
  4. at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java: 76)
  5. at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java: 198)
  6. at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java: 185)
  7. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  8. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 57)
  9. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43)
  10. at java.lang.reflect.Method.invoke(Method.java: 606)
  11. at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java: 408)
  12. at com.sun.proxy.$Proxy15.insert(Unknown Source)
  13. at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java: 254)
  14. at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java: 57)
  15. at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java: 59)
  16. at com.sun.proxy.$Proxy18.insertSelective(Unknown Source)
  17. at cn.mym.crud.test.SpringTest.testCrud(SpringTest.java: 29)
  18. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  19. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 57)
  20. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43)
  21. at java.lang.reflect.Method.invoke(Method.java: 606)
  22. at org.junit.runners.model.FrameworkMethod$ 1.runReflectiveCall(FrameworkMethod.java: 50)
  23. at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 12)
  24. at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java: 47)
  25. at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java: 17)
  26. at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java: 75)
  27. at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java: 86)
  28. at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java: 84)
  29. at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java: 325)
  30. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 252)
  31. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 94)
  32. at org.junit.runners.ParentRunner$ 3.run(ParentRunner.java: 290)
  33. at org.junit.runners.ParentRunner$ 1.schedule(ParentRunner.java: 71)
  34. at org.junit.runners.ParentRunner.runChildren(ParentRunner.java: 288)
  35. at org.junit.runners.ParentRunner.access$ 000(ParentRunner.java: 58)
  36. at org.junit.runners.ParentRunner$ 2.evaluate(ParentRunner.java: 268)
  37. at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java: 61)
  38. at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java: 70)
  39. at org.junit.runners.ParentRunner.run(ParentRunner.java: 363)
  40. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java: 191)
  41. at org.junit.runner.JUnitCore.run(JUnitCore.java: 137)
  42. at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java: 119)
  43. at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java: 42)
  44. at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java: 234)
  45. at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java: 74)
  46. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  47. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 57)
  48. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43)
  49. at java.lang.reflect.Method.invoke(Method.java: 606)
  50. at com.intellij.rt.execution.application.AppMain.main(AppMain.java: 144)

错误原因是 mybatis-spring 包版本问题,那么要么换mybatis或者spring包的版本,要么换整合包的版本。

经过测试:我的spring包是4.3.7版本。mybatis版本是3.4.2    出错时整合包版本:1.2.2

把整合包版本依次往上加,最后加到  1.3.0   就可以正常运行,那么经过测试最新版1.3.1也是可以运行的。

所以说,对于已经配置好的spring和mybatis的版本后,我只能使用1.3.0及以上的版本。

遇到问题可以依次试试不同的版本,直到可以用。

Mybatis Spring的版本如下:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello_world!

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值