当数据表为一对多时,采用collection标签来操作 <?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.sealong.dao.IUserDao"> <resultMap id="UserAccount" type="com.sealong.domain.User"> <id property="id" column="id"></id> <result column="username" property="username"></result> <result column="birthday" property="birthday"></result> <result column="sex" property="sex"></result> <result column="address" property="address"></result> <!--collection 用于数据表一对多映射 accounts 是对象:com.sealong.domain.User中的一个属性名 ofType 为该属性所对应的类 --> <collection property="accounts" ofType="com.sealong.domain.Account"> <id column="aid" property="id"></id> <result property="uid" column="uid"></result> <result property="money" column="money"></result> </collection> </resultMap> <select id="findAll" resultMap="UserAccount"> select u.* ,a.id as aid,a.uid,a.money from user u left join account a on u.id = a.uid </select> </mapper>
----------------------------------------------------------------------------------------------------------------------------
package com.sealong.domain; import java.util.Date; import java.util.List; public class User { private Integer id; private String username ; private Date birthday; private String sex ; private String address; List<Account> accounts; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public List<Account> getAccounts() { return accounts; } public void setAccounts(List<Account> accounts) { this.accounts = accounts; } @Override public String toString() { final StringBuffer sb = new StringBuffer("User{"); sb.append("id=").append(id); sb.append(", username='").append(username).append('\''); sb.append(", birthday=").append(birthday); sb.append(", sex='").append(sex).append('\''); sb.append(", address='").append(address).append('\''); sb.append(", accounts=").append(accounts); sb.append('}'); return sb.toString(); } }