实体order和user采用resultMap

order

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
package pojo;

import java.util.Date;

public class Order {
    private Integer id;

    private Integer userId;

    private String number;

    private Date createtime;

    private String note;
    
    private User user;
    

    

    public User getUesr() {
        return user;
    }

    public void setUesr(User user) {
        this.user = user;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number == null ? null : number.trim();
    }

    public Date getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note == null ? null : note.trim();
    }

    @Override
    public String toString() {
        return "Order [id=" + id + ", userId=" + userId + ", number=" + number + ", createtime=" + createtime
                + ", note=" + note + ", user=" + user + "]";
    }

     
}

user.java

package pojo;

import java.util.Date;

public class User {

    private Integer id;
    private String username;// 鐢ㄦ埛濮撳悕
    private String sex;// 鎬у埆
    private Date birthday;// 鐢熸棩
    private String address;// 鍦板潃
    private String uuid2;

    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 + "]";
    }
    
    
}

OrderMapper.java

package mapper;

import java.util.List;

import pojo.Order;
import pojo.OrderUser;

public interface OrderMapper {
    List<Order> getOrderList();
//    一对一关联
    List<OrderUser> getOrderUser();
    List<Order> getOrderUserMap();
}    

OrderMapper.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">
<!-- namespace命名空间,隔离sql文件 -->
<!-- #{}占位符相当于jdbc的? -->
<!-- ${value} 字符串拼接 -->
<!-- 动态代理开发原则
1、namespace必须是接口的全路径
2、接口的方法必须与sql的id一致
3、接口的入参与parameterType类型一致
4、接口的返回值必须与resultType类型一致
 -->
<mapper namespace="mapper.OrderMapper">
    
    <!-- 定义resultMap -->
    <resultMap type="order" id="order_user_map">
        <id property="id" column="id"/>
        <result property="userId" column="user_id"/>
        <result property="number" column="number"/>
        <result property="createtime" column="createtime"/>
        <result property="note" column="note"/>
        <!--association 用于配置一对一  -->
        <association property="user" javaType="pojo.User">
            <id property="id" column="user_id"/>
            <result property="username" column="username"/>
            <result property="address" column="address"/>
            <result property="birthday" column="birthday"/>
            <result property="sex" column="sex"/>
        </association>
    </resultMap>
    
    <!-- 一对一关联查询 -->
    <select id="getOrderUserMap"  resultMap="order_user_map">
     select  
     o.id,
     o.user_id,
     o.number,
     o.createtime,
     o.note,
     u.username,
     u.address,
     u.birthday,
     u.sex
     from order1 o left join user u on u.id = o.user_id
    </select>    
</mapper>

测试

    @Test
    public void getOrderUserMap() {
        SqlSession openSession = SqlSessionFactoryUtil.getSqlSessionFactory().openSession();
        //获得接口实现类
        OrderMapper mapper = openSession.getMapper(OrderMapper.class);
         List<Order> orderUserMap = mapper.getOrderUserMap();
    for (Order order : orderUserMap) {
        System.out.println(order);
    }
        openSession.close();
    }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄