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;
-
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:
85)
-
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:
49)
-
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:
117)
-
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:
76)
-
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:
198)
-
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:
185)
-
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:
606)
-
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:
408)
-
at com.sun.proxy.$Proxy15.insert(Unknown Source)
-
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:
254)
-
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:
57)
-
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:
59)
-
at com.sun.proxy.$Proxy18.insertSelective(Unknown Source)
-
at cn.mym.crud.test.SpringTest.testCrud(SpringTest.java:
29)
-
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:
606)
-
at org.junit.runners.model.FrameworkMethod$
1.runReflectiveCall(FrameworkMethod.java:
50)
-
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:
12)
-
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:
47)
-
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:
17)
-
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:
75)
-
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:
86)
-
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:
84)
-
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:
325)
-
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:
252)
-
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:
94)
-
at org.junit.runners.ParentRunner$
3.run(ParentRunner.java:
290)
-
at org.junit.runners.ParentRunner$
1.schedule(ParentRunner.java:
71)
-
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:
288)
-
at org.junit.runners.ParentRunner.access$
000(ParentRunner.java:
58)
-
at org.junit.runners.ParentRunner$
2.evaluate(ParentRunner.java:
268)
-
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:
61)
-
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:
70)
-
at org.junit.runners.ParentRunner.run(ParentRunner.java:
363)
-
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:
191)
-
at org.junit.runner.JUnitCore.run(JUnitCore.java:
137)
-
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:
119)
-
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:
42)
-
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:
234)
-
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
74)
-
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:
606)
-
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的版本如下: