Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法

一、问题描述

写好配置文件用JUnit进行测试,一运行就报错:

org.apache.ibatis.exceptions.PersistenceException:  ### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.fendo.entity.Person with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.fendo.entity.Person.<init>() ### The error may exist in com/fendo/entity/Person.xml ### The error may involve defaultParameterMap ### The error occurred while setting parameters ### SQL: select * from person ### Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.fendo.entity.Person with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.fendo.entity.Person.<init>()   at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:107)   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98)   at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:114)   at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)   at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43)   at com.sun.proxy.$Proxy6.getPersons(Unknown Source)   at com.fendo.test.TestMybatis.test(TestMybatis.java:40)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   at java.lang.reflect.Method.invoke(Method.java:498)   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.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)   at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)   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.junit.runners.ParentRunner.run(ParentRunner.java:363)   at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) Caused by: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.fendo.entity.Person with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.fendo.entity.Person.<init>()   at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:83)   at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:45)   at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:38)   at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:535)   at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:514)   at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:334)   at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:294)   at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:269)   at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:239)   at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:153)   at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:57)   at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:70)   at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:57)   at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:259)   at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:132)   at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105)   at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)   ... 31 more Caused by: java.lang.NoSuchMethodException: com.fendo.entity.Person.<init>()   at java.lang.Class.getConstructor0(Class.java:3082)   at java.lang.Class.getDeclaredConstructor(Class.java:2178)   at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:57)   ... 48 more 

从上面的异常可以看出: Java.lang.NoSuchMethodException: com.fendo.entity.Person.<init>()

person这个实体类不能初始化,不能初始化的原因可能是没有构造方法,然后我查看了下类确实没有构造方法,为他添加个构造方法,就可以了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. Android(安卓)报错:Caused by: android.os.FileUriExposedExcepti
  2. Ionic 运行报错No resource identifier found for attribute 'ap
  3. Android,LIstView中的OnItemClick点击无效的解决办法
  4. 华为手机Android(安卓)Studio开发不显示Logcat解决办法
  5. 安卓9.0 http请求数据失败解决办法
  6. Android(安卓)Studio 导入包时报 Duplicate files copied in APK
  7. Android(安卓)启动Tomcat服务报错,端口占用解决方案
  8. Android(安卓)启动时闪一下黑屏问题的解决办法
  9. Android(安卓)项目混编flutter报错

随机推荐

  1. java 中 String s = "" 与 new String()
  2. 子网掩码的进制转换
  3. vtp实验
  4. 共享文件夹
  5. 华为ensp链路聚合综合实验
  6. Kafka 原理以及分区分配策略剖析
  7. 单臂路由
  8. 说话时如何把“NO”变成“yes”?
  9. Azure DevTest Lab体验(二)用户测试
  10. 链路追踪 SkyWalking 源码分析 —— Coll