Mybatis-02一对多查询

续上节

1.修改User类

package com.mybatis.domain;

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 List<Order> orders;
	

	public List<Order> getOrders() {
		return orders;
	}

	public void setOrders(List<Order> orders) {
		this.orders = orders;
	}

	private String uuid;

	public String getUuid() {
		return uuid;
	}

	public void setUuid(String uuid) {
		this.uuid = uuid;
	}

	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 + ", orders=" + orders + ", uuid=" + uuid + "]";
	}
}

2.修改UserMapper接口

	//一对多
	List<User> getUserOrderMap();

2.修改UserMapper.xml文件

<!-- 一对多 -->
	<!-- type数据类型 -->
	<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" />
		
		<!--ofType="order"用的别名 com.mybatis.domain.Order -->
		<!-- property 用户中订单属性 -->
		<collection property="orders" 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.`uuid`,
		  o.`id` oid,
		  o.`number`,
		  o.`createtime`,
		  o.`note`
		FROM `user` u
		  LEFT JOIN `order` o
		    ON o.`user_id` = u.`id`
	</select>

3.单元测试

@Test
	public void testgetUserOrderMap() {
		SqlSession sql=SqlSessionFactoryUtils.getSql().openSession();
		//接口代理实现类
		UserMapper userMapper=sql.getMapper(UserMapper.class);
		List<User> list=userMapper.getUserOrderMap();
		for(User user1:list) {
			System.out.println(user1);
			for(Order order:user1.getOrders())
				if(order.getId()!=null)
			System.out.println("此用户订单:"+order);
		}
		sql.close();
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值