mybatis 多表查询 (一对多操作)
一对多操作,像是一个user类实例关联好几个account实例
如图,一个jack对应两个account
在User类中 加上一个account的集合
package com.qst.domain;
import java.util.List;
public class User {
private Integer id;
private String username;
private String gender;
private String email;
private Integer did;
private List<Account> accounts;
public List<Account> getAccounts() {
return accounts;
}
public void setAccounts(List<Account> accounts) {
this.accounts = accounts;
}
public void setId(Integer id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setEmail(String email) {
this.email = email;
}
public void setDid(Integer did) {
this.did = did;
}
public Integer getId() {
return id;
}
public String getUsername() {
return username;
}
public String getGender() {
return gender;
}
public String getEmail() {
return email;
}
public Integer getDid() {
return did;
}
@Override
public String toString() {
return accounts +"User{" +
"id=" + id +
", username='" + username + '\'' +
", gender=" + gender +
", email='" + email + '\'' +
", did=" + did +
'}';
}
}
在配置映射关系是使用 collertion标签封装account
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qst.dao.IUserDao">
<resultMap id="UserAndAcc" type="com.qst.domain.User">
<id column="id" property="id" ></id>
<result column="username" property="username"></result>
<result column="gender" property="gender"></result>
<result column="email" property="email"></result>
<result column="did" property="did"></result>
<collection property="accounts" ofType="com.qst.domain.Account">
<id column="id" property="id"></id>
<result column="money" property="money"></result>
<result column="uid" property="uid"></result>
</collection>
</resultMap>
<select id="findAlls" resultMap="UserAndAcc">
select * from employee e left outer join account a on e.id = a.uid
</select>
</mapper>