Mybatis学习4——一对一关联查询方法2------实体作为属性
实体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(); }

更多精彩