test_user表:
id username userage useraddress
1 wjf 29 通州
2 tbf 30 湖北
3 xxx 23 xxxxxx
关联:
test_article表:
id userid title content
1 1 test_title test_content
2 1 test_title2 test_content2
3 1 test_title3 test_content3
4 1 test_title4 test_content4
User类:
public class User {
private int id;
private String username;
private int userage;
private String useraddress ;
get和set方法...
}
Article类:
public class Article {
private int id;
private User user;
private String title;
private String content;
get和set方法...
}
目的是查出1号用户对应的article:
User.xml配置:
<resultMap id="resultUserArticleList" type="Article">
<id property="id" column="id" />
<result property="title" column="title" />
<result property="content" column="content" />
<association property="user" javaType="User">
<id property="id" column="id" />
<result property="username" column="userName" />
<result property="useraddress" column="userAddress" />
</association>
</resultMap>
<select id="getUserArticles" parameterType="int" resultMap="resultUserArticleList">
select u.id,u.username,u.useraddress,a.id,a.title,a.content from test_user u ,test_article a
where u.id=a.userid and u.id=#{id}
</select>
接口:
public interface IUserOperation {
public List<Article> getUserArticles(int id);
}
测试类:
public class Test{
public void getUserArticles(int userid){
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation=session.getMapper(IUserOperation.class);
List<Article> articles = userOperation.getUserArticles(userid);
System.out.println(articles.size());
} finally {
session.close();
}
}
public static void main(String[] args) {
Test testUser=new Test();
testUser.getUserArticles(1);
}
}
为什么size为1?刚学mybatis,不懂,sql里面查询出来是4条,麻烦解释下
------解决方案--------------------
看着 应该没有什么问题...
会不会是 数据库 不一样啊------解决方案--------------------
List<Article> articles = userOperation.getUserArticles(userid);
这个getUserArticles 有没有做什么处理?
------解决方案--------------------
出了问题,找出原因很重要。我一下子也看不出来问题所在,根据经验,使用association这个元素很容易出错,建议你在resultMap中先换一种写法,不要用association。修改测试一下,如果成功的话,就基本可以去顶是association的问题了,之后查一下association详细资料,应该能解决。如果不是association的问题,就调查一下配置文件等等,总能够解决的。
------解决方案--------------------