Mybatis学习4——多对一

一个用户对多个订单

在用户中添加属性List<user>

User.java

package pojo;

import java.util.Date;
import java.util.List;

public class User {

    private Integer id;
    private String username;// 鐢ㄦ埛濮撳悕
    private String sex;// 鎬у埆
    private Date birthday;// 鐢熸棩
    private String address;// 鍦板潃
    private String uuid2;
    private List<Order> orderList;
    
    public List<Order> getOrderList() {
        return orderList;
    }

    public void setOrderList(List<Order> orderList) {
        this.orderList = orderList;
    }

    public String getUuid2() {
        return uuid2;
    }

    public void setUuid2(String uuid2) {
        this.uuid2 = uuid2;
    }

    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 String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address="
                + address + ", uuid2=" + uuid2 + ", orderList=" + orderList + "]";
    }

    
    
    
}

mapper文件UserMapper.xml

<?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="mapper.UserMapper">
    <resultMap type="user" id="user_order_map">
            <id property="id" column="id"/>
            <result property="username" column="username"/>
            <result property="address" column="address"/>
            <result property="birthday" column="birthday"/>
            <result property="sex" column="sex"/>
            <!-- collection用于配置一对多关联 -->
        <collection property="orderList" ofType="order">
            <id property="id" column="oid"/>
            <result property="userId" column="id"/>
            <result property="number" column="number"/>
            <result property="createtime" column="createtime"/>
            <result property="note" column="note"/>
        </collection>
    </resultMap>
    <select id="getUserOrderMap" resultMap="user_order_map">
        select 
            u.id,
            u.username,
            u.birthday,
            u.sex,
            u.address,
            u.uuid2,
            o.id oid,
            o.number,
            o.createtime,
            o.note 
            from 
             user u 
             left join 
             order1 o 
             on o.user_id = u.id
            
    </select>
</mapper>

测试

    @Test
    public void getUserOrderMap() {
        SqlSession openSession = SqlSessionFactoryUtil.getSqlSessionFactory().openSession();
        //获得接口实现类
        UserMapper mapper = openSession.getMapper(UserMapper.class);
         List<User> orderUserMap = mapper.getUserOrderMap();
         for (User user : orderUserMap) {
             List<Order> orderList = user.getOrderList();
            for (Order order : orderList) {
                if(order.getId()!=null)
                System.out.println("========"+order);
            }
        }
        openSession.close();
    }

猜你喜欢

转载自www.cnblogs.com/jinyu-helloword/p/10667851.html
今日推荐