MyBatis配置文件中ResultMap的type找不到对应的类

Sunny3096 2015-12-03 10:50:57
求助:无解,求助



错误信息:
Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sun.mybatis.interfaces.IUserOperation.getUserArticles
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:178)
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 com.sun.proxy.$Proxy0.getUserArticles(Unknown Source)
at com.sun.test.Test_getUserArticles.getUserArticles(Test_getUserArticles.java:35)
at com.sun.test.Test_getUserArticles.main(Test_getUserArticles.java:47)
Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.sun.mybatis.interfaces.IUserOperation.resultUserArticleList
at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:365)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:303)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:111)
at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:632)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:558)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:553)
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:176)
... 6 more
Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.sun.mybatis.interfaces.IUserOperation.resultUserArticleList
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:725)
at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:487)
at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:363)
... 12 more






Mapping.xml文件

<mapper namespace="com.sun.mybatis.interfaces.IUserOperation">
<!-- 单个查询 -->
<select id="selectUserByID" parameterType="int" resultType="User">
select * from user where id = #{id}
</select>

<!-- List查询 -->
<resultMap type="User" id="resultListUser">
<id column="id" property="id"/>
<result column="userName" property="userName"/>
<result column="userAge" property="userAge"/>
<result column="userAddress" property="userAddress"/>
</resultMap>
<select id="selectUsers" parameterType="string" resultMap="resultListUser">
select * from user where userName like #{userName}
</select>

<!-- 新增 -->
<insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into user (userName,userAge,userAddress) values(#{userName},#{userAge},#{userAddress})
</insert>
<!-- 注:#{name}中name大小写敏感,useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主
键;keyProperty="id"指定把获取到的主键值注入到User的id属性 -->

<!-- 修改 -->
<update id="updateUser" parameterType="User" >
update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}
</update>

<!-- 删除 -->
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>

<!-- 多表查询 -->
<resultMap type="Article" id="resultUserArticleList" >
<id column="id" property="id"/>
<result column="title" property="title"/>
<result column="content" property="content"/>
<association property="user" javaType="User" resultMap="resultListUser" />
</resultMap>

<select id="getUserArticles" parameterType="int" resultMap="resultUserArticleList">
select user.id,user.userName,user.userAddress,article.id aid,article.title,article.content from user,article
where user.id=article.userid and user.id=#{id}
</select>

</mapper>

java类


测试类
package com.sun.test;

import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.sun.mybatis.interfaces.IUserOperation;
import com.sun.mybatis.model.Article;

public class Test_getUserArticles {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;

static{
try{
reader = Resources.getResourceAsReader("Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch(Exception e){
e.printStackTrace();
}
}

public static SqlSessionFactory getSession(){
return sqlSessionFactory;
}

public void getUserArticles(int id){
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
List<Article> articleList = userOperation.getUserArticles(id);
for(Article article:articleList){
System.out.println(article.getTitle()+":"+article.getContent()+":作者是:"+article.getUser().getUserName()+
":地址:"+article.getUser().getUserAddress());
}
} finally {
session.close();
}
}

public static void main(String[] args) {
Test_getUserArticles test = new Test_getUserArticles();
test.getUserArticles(1);
}
}
...全文
2397 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunny3096 2015-12-04
  • 打赏
  • 举报
回复
哎,好菜的问题,今天自己找到了,第一次用这个还不熟,不过3q了
qq_18813027 2015-12-04
  • 打赏
  • 举报
回复
给你的类附上全类路径或者给它定义别名。。

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧