在 MyBatis 中編寫(xiě)嵌套查詢可以通過(guò)使用<collection>
或<association>
標(biāo)簽來(lái)實(shí)現(xiàn)。下面是一個(gè)示例:
假設(shè)有兩個(gè)表,一個(gè)是用戶表(user),一個(gè)是訂單表(order),用戶表和訂單表是一對(duì)多的關(guān)系,一個(gè)用戶可以有多個(gè)訂單。
<select id="getUserById" resultType="User" parameterType="int">
SELECT * FROM user WHERE id = #{id}
</select>
<collection>
標(biāo)簽來(lái)嵌套查詢用戶信息:<select id="getOrderByUserId" resultType="Order" parameterType="int">
SELECT * FROM order WHERE user_id = #{userId}
</select>
<select id="getOrdersByUserId" resultType="User" parameterType="int">
SELECT * FROM user WHERE id = #{id}
<collection property="orders" ofType="Order" select="getOrderByUserId"/>
</select>
在這個(gè)示例中,getOrdersByUserId
方法將會(huì)先查詢用戶信息,然后再查詢?cè)撚脩舻挠唵涡畔?,并將訂單信息嵌套到用戶?duì)象中的orders
屬性中。通過(guò)這種方式可以實(shí)現(xiàn)嵌套查詢的效果。