亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何通過MyBatis實現集合的關聯查詢

小樊
81
2024-08-08 09:35:43
欄目: 編程語言

在MyBatis中,可以通過使用<collection>標簽來實現集合的關聯查詢。以下是一個示例:

在Mapper XML文件中定義關聯查詢:

<!-- 查詢訂單及其訂單項 -->
<select id="getOrderWithItems" resultMap="orderWithItems" parameterType="int">
    SELECT * FROM orders WHERE id = #{id}
</select>

<resultMap id="orderWithItems" type="Order">
    <id property="id" column="id"/>
    <result property="orderNumber" column="order_number"/>
    <collection property="orderItems" ofType="OrderItem" column="order_id" select="getOrderItemsByOrderId"/>
</resultMap>

<select id="getOrderItemsByOrderId" resultMap="orderItemResultMap" parameterType="int">
    SELECT * FROM order_items WHERE order_id = #{id}
</select>

<resultMap id="orderItemResultMap" type="OrderItem">
    <id property="id" column="id"/>
    <result property="name" column="name"/>
    <result property="quantity" column="quantity"/>
</resultMap>

在Java代碼中調用關聯查詢:

public Order getOrderWithItems(int orderId) {
    try(SqlSession sqlSession = sqlSessionFactory.openSession()) {
        OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class);
        return orderMapper.getOrderWithItems(orderId);
    }
}

以上示例中,Order類包含了一個List<OrderItem>類型的屬性orderItems,通過在<resultMap>中使用<collection>標簽來關聯查詢OrderItem對象并映射到orderItems屬性中。在查詢訂單時,同時查詢訂單項,并將訂單項關聯到訂單對象中。

0
舟曲县| 饶平县| 普安县| 岳阳市| 黄平县| 宜宾县| 溧水县| 凤台县| 屏东县| 梓潼县| 岳西县| 龙江县| 卓尼县| 和政县| 揭阳市| 天台县| 凤庆县| 松原市| 九龙县| 长阳| 始兴县| 海丰县| 休宁县| 开化县| 元阳县| 民勤县| 东阳市| 淄博市| 嘉禾县| 河西区| 重庆市| 迭部县| 阿拉善右旗| 新和县| 资讯| 上饶市| 漳浦县| 襄垣县| 宝坻区| 衡山县| 辽源市|