Mybatis报错日志:
Caused by: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'dao.IUserDao.findOne'. It's likely that neither a Result Type nor a Result Map was specified.
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.validateResultMapsCount(DefaultResultSetHandler.java:283)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:189)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
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:148)
... 27 more
错误分析
根据报错分析可知,报错的大概意思就是没有返回结果集被发现。
大概率就是配置文件有问题,如图为错误的配置文件:
解决方案
只要在select标签中加上resultType标签,既:resultType=“domain.User”,引号中本人放的是对象地址,这里需要根据个人的查询需求来定,如查询出来是String类型的数据,那么引号中就该是java.long.String,既是返回类型所在的包的名称,其它类型的数据同理。
如图为正确的配置:
重新运行错误消失,程序没有报错了: