resultMap 1对多查询

    xiaoxiao2021-03-25  161

    查询订单关联查询用户及订单明细,使用resultmap 上一篇文章已经把user order的代码贴上 下面把orderdetail代码也贴上

    package cn.itcast.mybatis.po; public class Orderdetail { private Integer id; private Integer ordersId; private Integer itemsId; private Integer itemsNum; //明细对应的商品信息 private Items items; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getOrdersId() { return ordersId; } public void setOrdersId(Integer ordersId) { this.ordersId = ordersId; } public Integer getItemsId() { return itemsId; } public void setItemsId(Integer itemsId) { this.itemsId = itemsId; } public Integer getItemsNum() { return itemsNum; } public void setItemsNum(Integer itemsNum) { this.itemsNum = itemsNum; } public Items getItems() { return items; } public void setItems(Items items) { this.items = items; } @Override public String toString() { return "Orderdetail [id=" + id + ", ordersId=" + ordersId + ", itemsId=" + itemsId + ", itemsNum=" + itemsNum + "]"; } } 下面是mapper文件里面的定义,大家注意看上一篇文章order里面有user 和orderdetail的引用 这都是为了关联查询用户信息,订单详细信息映射到user里面啊

    <!-- 订单及订单明细的resultMap 使用extends继承,不用在中配置订单信息和用户信息的映射 --> <resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersAndOrderDetailResultMap" extends="OrdersUserResultMap"> <!-- 订单信息 --> <!-- 用户信息 --> <!-- 使用extends继承,不用在中配置订单信息和用户信息的映射 --> <!-- 订单明细信息 一个订单关联查询出了多条明细,要使用collection进行映射 collection:对关联查询到多条记录映射到集合对象中 property:将关联查询到多条记录映射到cn.itcast.mybatis.po.Orders哪个属性 ofType:指定映射到list集合属性中pojo的类型 --> <collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail"> <!-- id:订单明细唯 一标识 property:要将订单明细的唯 一标识 映射到cn.itcast.mybatis.po.Orderdetail的哪个属性 --> <id column="orderdetail_id" property="id"/> <result column="items_id" property="itemsId"/> <result column="items_num" property="itemsNum"/> <result column="orders_id" property="ordersId"/> </collection> </resultMap>!-- 查询订单关联查询用户及订单明细,使用resultmap --> <select id="findOrdersAndOrderDetailResultMap" resultMap="OrdersAndOrderDetailResultMap"> SELECT orders.*, USER.username, USER.sex, USER.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders_id FROM orders, USER, orderdetail WHERE orders.user_id = user.id AND orderdetail.orders_id=orders.id </select>查询结果(包含订单 用户 订单详细信息) Orders{id=6, userId=1, number='1', createtime=Thu Mar 09 13:40:47 GMT+08:00 2017, note='大盘鸡送到涂鸦家', user=User [id=1, username=涂鸦, sex=男, birthday=null, address=湖北十堰], orderdetails=[Orderdetail [id=5, ordersId=6, itemsId=1, itemsNum=2]]} Orders{id=7, userId=2, number='2', createtime=Thu Mar 09 14:37:25 GMT+08:00 2017, note='大碗面快点送到 我饿死了!', user=User [id=2, username=涂勇, sex=男, birthday=null, address=湖北武当山], orderdetails=[Orderdetail [id=6, ordersId=7, itemsId=2, itemsNum=1]]}

    转载请注明原文地址: https://ju.6miu.com/read-12095.html

    最新回复(0)