mybatisxml中collection
时间: 2023-11-28 15:41:05 浏览: 249
mybatis中的collection元素用于处理一对多的关系,它可以将一个集合作为参数传递给SQL语句,从而实现一对多的查询。在XML文件中,collection元素通常嵌套在resultMap元素中,用于映射查询结果到Java对象中的集合属性上。
例如,假设我们有一个Order类和一个OrderItem类,一个订单可以包含多个订单项。我们可以使用collection元素将订单项集合映射到Order对象中:
```xml
<resultMap id="orderResultMap" type="Order">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<collection property="orderItems" ofType="OrderItem">
<id property="id" column="item_id"/>
<result property="itemName" column="item_name"/>
<result property="itemPrice" column="item_price"/>
</collection>
</resultMap>
```
在SQL语句中,我们可以使用foreach元素来遍历集合参数:
```xml
<select id="getOrderById" resultMap="orderResultMap">
SELECT order_id, order_no, item_id, item_name, item_price
FROM orders o
LEFT JOIN order_items oi ON o.order_id = oi.order_id
WHERE o.order_id = #{orderId}
</select>
```
阅读全文