求助:无解,求助
错误信息:
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);
}
}