JBOSS 點滴

          豐豐的博客

          MyBatis出現org.apache.ibatis.executor.ExecutorException異常

          DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - Opening JDBC Connection
          DEBUG [main] 
          - Created connection 29011566.
          DEBUG [main] 
          - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1baae6e]
          DEBUG [main] 
          - ==>  Preparing: select * from user where username like concat(?,'%') 
          DEBUG [main] - ==> Parameters: 張(String)

          org.apache.ibatis.exceptions.PersistenceException: 
          ### 
          Error querying database.  Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'username' from result set.  Cause: java.sql.SQLException: Cannot convert value 'å¼ ä¸?' from column 2 to TIMESTAMP.
          ### The error may exist in sqlmap/User.xml
          ### The 
          error may involve test.findUserByName3
          ### The 
          error occurred while handling results
          ### SQL: 
          select * from user where username like concat(?,'%')
          ### Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'username' from result set.  Cause: java.sql.SQLException: Cannot convert value 'å¼ ä¸?' from column 2 to TIMESTAMP.

              at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:
          30)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          149)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          140)
              at com.swjd.test.B.test2(B.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:
          497)
              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.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.junit.runner.JUnitCore.run(JUnitCore.java:
          137)
              at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:
          68)
              at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:
          47)
              at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:
          242)
              at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
          70)
          Caused by: org.apache.ibatis.executor.result.ResultMapException: 
          Error attempting to get column 'username' from result set.  Cause: java.sql.SQLException: Cannot convert value 'å¼ ä¸?' from column 2 to TIMESTAMP.
              at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:83)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createUsingConstructor(DefaultResultSetHandler.java:
          671)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createByConstructorSignature(DefaultResultSetHandler.java:
          654)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          618)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          591)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:
          397)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:
          354)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:
          328)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:
          301)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:
          194)
              at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:
          65)
              at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:
          79)
              at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:
          63)
              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:
          147)
               
          24 more
          Caused by: java.sql.SQLException: Cannot convert value 
          'å¼ ä¸?' from column 2 to TIMESTAMP.
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:
          956)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:
          926)
              at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:
          1328)
              at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:
          124)
              at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:
          6669)
              at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:
          5988)
              at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:
          6026)
              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:
          497)
              at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:
          69)
              at com.sun.proxy.$Proxy6.getTimestamp(Unknown Source)
              at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:
          39)
              at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:
          28)
              at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:
          81)
               
          41 more
          Caused by: java.lang.NumberFormatException: 張三
              at com.mysql.jdbc.StringUtils.getInt(StringUtils.java:
          756)
              at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:
          1253)
               
          54 more


          Process finished 
          with exit code -1

          上網找了一些答案也沒有解決我的問題,

          后來發現原來是User類的構造函數問題,找不到相關的構造函數;試著在User中加一個默認的構造函數,就解決了。。。

          希望能幫到大家。

                   默認的構造函數在創建構造函數后,不會自動創建默認構造函數

          DEBUG [main] 
          - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
          DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - Opening JDBC Connection
          DEBUG [main] 
          - Created connection 27155935.
          DEBUG [main] 
          - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@19e5ddf]
          DEBUG [main] 
          - ==>  Preparing: select * from user where id=
          DEBUG [main] 
          - ==> Parameters: 27(Integer)

          org.apache.ibatis.exceptions.PersistenceException: 
          ### 
          Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.swjd.po.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.swjd.po.User.<init>()
          ### The 
          error may exist in sqlmap/User.xml
          ### The 
          error may involve test.findUserById-Inline
          ### The 
          error occurred while setting parameters
          ### SQL: 
          select * from user where id=?
          ### Cause: org.apache.ibatis.reflection.ReflectionException: 
          Error instantiating class com.swjd.po.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.swjd.po.User.<init>()

              at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:
          26)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          111)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          102)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:
          66)
              at com.test.Test1.test1(Test1.java:
          31)
              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:
          497)
              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.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.junit.runner.JUnitCore.run(JUnitCore.java:
          137)
              at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:
          68)
              at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:
          47)
              at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:
          242)
              at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
          70)
          Caused by: org.apache.ibatis.reflection.ReflectionException: 
          Error instantiating class com.swjd.po.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.swjd.po.User.<init>()
              at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:
          86)
              at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:
          48)
              at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:
          41)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          528)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          507)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:
          331)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:
          291)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:
          266)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:
          236)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:
          150)
              at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:
          60)
              at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:
          73)
              at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:
          60)
              at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:
          267)
              at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:
          137)
              at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:
          96)
              at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:
          77)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          108)
               
          25 more
          Caused by: java.lang.NoSuchMethodException: com.swjd.po.User.
          <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:
          60)
               
          42 more


          Process finished 
          with exit code -1


            

          這種錯也是同樣的問題,


          加上無參構造函數就可以了。


          當創建對象來接受sql結果時會遍歷實體類的構造方法找到與之匹配的,如果實體類中有構造方法了但是參數不匹配的話就會報上述錯誤,此時添加無參構造方法(默認的構造方法),會走其他方法,
          https://blog.csdn.net/qq_35975416/article/details/80488267




          posted on 2020-03-25 20:01 半導體 閱讀(5572) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 沾化县| 永安市| 江源县| 集贤县| 辰溪县| 宣化县| 蓬莱市| 松潘县| 乌拉特前旗| 辉县市| 大田县| 榆林市| 马尔康县| 友谊县| 抚远县| 全南县| 永修县| 宽甸| 尼勒克县| 仙居县| 富裕县| 阿克陶县| 溧阳市| 临西县| 多伦县| 屯门区| 宜城市| 北京市| 大理市| 白城市| 广宗县| 乐山市| 成安县| 合川市| 西吉县| 马边| 涿鹿县| 锡林浩特市| 青川县| 兴文县| 霍林郭勒市|