在mydatis笔记(一)基础上实现关联数据的查询
1、在数据库新建mybatis_t_article表
2、新建ArticleBean
与数据库mybatis_t_article表对应,userid对应UserBean,所以文章的用户是直接定义的一个User对象。而不是int类型。
public class ArticleBean {
private int id;
private UserBean user;
private String title;
private String context;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContext() {
return context;
}
public void setContent(String context) {
this.context = context;
}
@Override
public String toString() {
return "ArticleBean{" +
"id=" + id +
", user=" + user +
", title='" + title + '\'' +
", context='" + context + '\'' +
'}';
}
}
3、关联数据配置及编写sql
<!-- 自定义返回结果集 -->
<resultMap id="userMap" type="com.mybatis.beans.UserBean">
<id property="id" column="id" javaType="java.lang.Integer"></id>
<result property="username" column="username" javaType="java.lang.String"></result>
<result property="password" column="password" javaType="java.lang.String"></result>
<result property="account" column="account" javaType="java.lang.Double"></result>
</resultMap>
<resultMap id="articleMap" type="com.mybatis.beans.ArticleBean">
<id property="id" column="aid" />
<result property="title" column="title" />
<result property="context" column="context" />
<!--复用我们前面已经定义好的 UserBean-->
<association property="user" javaType="com.mybatis.beans.UserBean" resultMap="userMap"/>
</resultMap>
<select id="getUserArticles" parameterType="int" resultMap="articleMap">
select mybatis_t_user.id ,mybatis_t_user.username,mybatis_t_user.account,mybatis_t_user.password,
mybatis_t_article.id,mybatis_t_article.title,mybatis_t_article.context,mybatis_t_article.userid
from mybatis_t_user , mybatis_t_article where mybatis_t_user.id=mybatis_t_article.userid and mybatis_t_user.id=#{id}
</select>
3、测试
@Test
public void getUserArticles()
{
SqlSession session=DBTools.getSession();
UserMapper mapper=session.getMapper(UserMapper.class);
try {
List<ArticleBean> articles= mapper.getUserArticles(123);
for (ArticleBean article:articles) {
System.out.println(article.toString());
}
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
}
}
运行结果