mybatis 一对多
创建数据库表
创建人员信息的表,里面有两个字段:
id:主键
name:名称
CREATE TABLE `person` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(45) NULL, PRIMARY KEY (`id`));
创建订单信息的表
id:主键
sno:订单编号
psId:员工id
CREATE TABLE `orders` ( `id` INT NOT NULL AUTO_INCREMENT, `sno` VARCHAR(45) NUL, `psId` VARCHAR(45) NULL, PRIMARY KEY (`id`));
创建类 Person 人员信息
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class Person implements Serializable {
    private Long id;
    private String name;
    private List<Orders> orders;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public List<Orders> getOrders() {
        return orders;
    }
    public void setOrders(List<Orders> orders) {
        this.orders = orders;
    }
    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", orders=" + orders +
                '}';
    }
}
Orders 订单
import java.io.Serializable;
public class Orders implements Serializable {
 private Long id;
    private String sno;
    private String psId;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getSno() {
        return sno;
    }
    public void setSno(String sno) {
        this.sno = sno;
    }
    public String getPsId() {
        return psId;
    }
    public void setPsId(String psId) {
        this.psId = psId;
    }
    @Override
    public String toString() {
        return "Orders{" +
                "id=" + id +
                ", sno='" + sno + '\'' +
                ", psId='" + psId + '\'' +
                '}';
    }
}
person mapper文件配置
<?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.test.dao.PersonDao"> <resultMap id="getOrders" type="com.test.bean.Person"> <!--Person中的基本属性--> <id column="id" property="id"/> <result column="name" property="name"/> <!--关联属性的映射关系--> <collection property="orders" ofType="com.test.bean.Order"> <id column="oid" property="id"/> <result column="psId" property="psId"/> <result column="sno" property="sno"/> </collection> </resultMap> <select id="selectOrderById" resultMap="getOrders"> SELECT t.id tid,t.name tname,p.id oid,p.sno sno FROM person t , order p WHERE t.id = p.tid and t.id=#{id} </select> </mapper>
需要注意的是
collection 标签中 property 属性对应 person类中的 字段 orders
id标签 column 不能和 resultMap 标签一样
service 方法跟测试方法就不写过,主要是xml中的配置 <collection>标签
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号