使用Spring3.2+mybatis3.2 搭建环境时出现的问题

org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.dy.mapper.AccountMapper.accountResultMap
at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:373)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:311)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109)
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.<init>(MapperMethod.java:175)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:38)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:49)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:42)
at $Proxy15.addAccount(Unknown Source)
at com.dy.test.AccountMapperTest.testAdd(AccountMapperTest.java:65)

------配置问题

原因是: ***-mapper.xml文件中的 resultMap字段后面的值找不到
解决
1、确保mybatis.xml和***-resultmap.xml文件在classpath中的相对位置正确,并配置正确
2、 ***-mapper.xml文件中,将resultMap字段后面的值加上 ***-resultmap.xml文件中的mapper的namespace,也就是namespace.resultMapID.
-------------------------
例如:
有***-resultmap.xml配置
<mapper namespace="accountMap">
  <resultMap type="AccountAlias" id="accountResultMap">
<id property="accountId" column="account_id" javaType="Integer" jdbcType="INTEGER"/>
<result property="status" column="status" javaType="Integer" jdbcType="INTEGER"/>
    </resultMap>
</mapper>
那么在***-mapper.xml文件中应该是
<select id="getAllAccount" resultType="list" resultMap="accountMap.accountResultMap">
 
 

<!-- 自动生成id策略 -->
<insert id="addAccount" useGeneratedKeys="true" keyProperty="account_id"
parameterType="account">

useGeneratedKeys="true" keyProperty="account_id"

posted on 2014-01-08 10:12  Duany  阅读(391)  评论(0)    收藏  举报