续上节
1.创建OrderUser类
package com.mybatis.domain;
import java.util.Date;
/*订单关联用户信息*/
public class OrderUser extends Order{
private String username;// 用户姓名
private String address;// 地址
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "OrderUser [username=" + username + ", address=" + address + ", getId()=" + getId() + ", getUserId()="
+ getUserId() + ", getNumber()=" + getNumber() + ", getCreatetime()=" + getCreatetime() + ", getNote()="
+ getNote() + "]";
}
}
2.OrderMapper接口中添加方法
//一对一关联
List<OrderUser> getOrderUser();
3.修改OrderMapper.xml
<!-- 一对一关联查询 -->
<select id="getOrderUser" resultType="orderuser">
SELECT
o.`id`,
o.`user_id` userId,
o.`number`,
o.`createtime`,
o.`note`,
u.username,
u.address
FROM `order` o
LEFT JOIN `user` u
ON u.id = o.user_id
</select>
4.单元测试
@Test
public void testgetOrderUser() {
SqlSession sql=SqlSessionFactoryUtils.getSql().openSession();
//接口代理实现类
OrderMapper orderMapper=sql.getMapper(OrderMapper.class);
List<OrderUser> list=orderMapper.getOrderUser();
for(OrderUser orderUser:list)
System.out.println(orderUser);
sql.close();
}
-----------------------------------------------
1.OrderMapper接口中添加方法
//一对一 resultMap
List<Order> getOrderUserMap();
2.修改OrderMapper.xml
<!-- type数据类型 -->
<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" />
<!-- 用于配置一对一关系 ,property,订单order中的user属性
javaType可以用别名 user,user数据类型-->
<association property="user" javaType="com.mybatis.domain.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` userId,
o.`number`,
o.`createtime`,
o.`note`,
u.username,
u.address
FROM `order` o
LEFT JOIN `user` u
ON u.id = o.user_id
</select>
3.修改Order类
package com.mybatis.domain;
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 getUser() {
return user;
}
public void setUser(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 + "]";
}
}
4.单元测试
@Test
public void testgetOrderUserMap() {
SqlSession sql=SqlSessionFactoryUtils.getSql().openSession();
//接口代理实现类
OrderMapper orderMapper=sql.getMapper(OrderMapper.class);
List<Order> list=orderMapper.getOrderUserMap();
for(Order order:list) {
System.out.println(order);
System.out.println("订单用户为:"+order.getUser());
}
sql.close();
}