在 MyBatis 中編寫嵌套查詢可以通過使用<collection>
或<association>
標簽來實現。下面是一個示例:
假設有兩個表,一個是用戶表(user),一個是訂單表(order),用戶表和訂單表是一對多的關系,一個用戶可以有多個訂單。
<select id="getUserById" resultType="User" parameterType="int">
SELECT * FROM user WHERE id = #{id}
</select>
<collection>
標簽來嵌套查詢用戶信息:<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>
在這個示例中,getOrdersByUserId
方法將會先查詢用戶信息,然后再查詢該用戶的訂單信息,并將訂單信息嵌套到用戶對象中的orders
屬性中。通過這種方式可以實現嵌套查詢的效果。