错误:
java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.util.Map
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:797)
at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:550)
at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:344)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:284)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:107)
at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:698)
at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:668)
at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:663)
at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:180)
at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:43)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
at com.sun.proxy.$Proxy91.queryList(Unknown Source)
at com.ssm.bbs.controller.HelloWorldController.list(HelloWorldController.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
User.xml
。。。
select uid,uname,upasswd,email,ustat,uface,uintro,uexp,urmb,active,gender from User
package com.ssm.bbs.dao.UserDao
public interface UserDao {
public List queryList();
}
这个错误的原因是,我在其他mapper.xml中错写了一个resultMap="java.util.Map" 改成resultType就不报错了。
但是有一个新的错误:
Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.ssm.bbs.dao.UserDao
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.ssm.bbs.dao.UserDao] with root cause
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.ssm.bbs.dao.UserDao
我已经检查过了,我的接口全名和mapper的namespace是一致的,接口名和mapper的文件名也是一致的,但还是有问题
//替换成下面的
<select id="queryList" resultMap="Map">
select uid,uname,upasswd,email,ustat,uface,uintro,uexp,urmb,active,gender from User
</select>
//Model对象和数据库表对象映射resultMap是不是没有加
//type写成你的User类,包含包名和类名:如com.model.User
<resultMap id="userMap" type="com.model.User" >
<!--column对应数据库字段名,property对应User对象属性名,一一对应好-->
<id column="ID" property="uid"/>
<!--其他字段-->
</resultMap>
<select id="queryList" resultMap="userMap">
select uid,uname,upasswd,email,ustat,uface,uintro,uexp,urmb,active,gender from User
</select>
没问题了,就是这
其他mapper.xml中错写了一个resultMap="java.util.Map" 改成resultType就不报错了。
的问题
上面我说的,是我测试类的问题改了就好了。
Result Maps collection does not contain value for java.util.Map
这句话的意思是,你的map中没有value