在使用select语句时,有时候需要查询两个表,可以使用表连接进行查询,也可以用mybatis给我们提供的collection标签
collection标签是在结果集映射的时候添加,也就是在resultMap标签添加,且不能放在result标签前面
collection标签属性有许多,但是基本用法只需要property、select、column
例如:
上面所写是关于两个表各自查询,然后通过关联的属性获取另外实体类的值,总体代码这里就不贴了,只要记住collection 是关于两个表各自查询,然后调用此标签,association是用来sql语句表连接查询的时候使用,可在这个标签下再次写入结果集映射
mybatis官网上的结果映射resultMap各个属性详解点击跳转
这里是详细代码,数据库表就不贴了
(1)两个实体类
package com.csh.bean;
public class Activity {
private Integer activityId;
private OrdinaryUser ordinaryUser;
private String theCityName;
private String title;
private String content;
public Integer getActivityId() {
return activityId;
}
public void setActivityId(Integer activityId) {
this.activityId = activityId;
}
public OrdinaryUser getOrdinaryUser() {
return ordinaryUser;
}
public void setOrdinaryUser(OrdinaryUser ordinaryUser) {
this.ordinaryUser = ordinaryUser;
}
public String getTheCityName() {
return theCityName;
}
public void setTheCityName(String theCityName) {
this.theCityName = theCityName;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "Activity{" +
"activityId=" + activityId +
", ordinaryUser=" + ordinaryUser +
", theCityName='" + theCityName + ''' +
", title='" + title + ''' +
", content='" + content + ''' +
'}';
}
}
package com.csh.bean;
import java.util.Date;
public class OrdinaryUser {
private String userAccount;
private String pwd;
private Integer sex;
private Date birthday;
public String getUserAccount() {
return userAccount;
}
public void setUserAccount(String userAccount) {
userAccount = userAccount;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "OrdinaryUser{" +
"UserAccount='" + userAccount + ''' +
", pwd='" + pwd + ''' +
", sex=" + sex +
", birthday=" + birthday +
'}';
}
}
(2)dao层两个接口
public interface ActivityDao {
public Activity selectAll(Integer activityId);
}
public interface OrdinaryUserDao {
public OrdinaryUser selectAll(String userAccount);
}
(3)两个映射文件



