在MyBatis中,一對多關聯查詢可以通過使用嵌套查詢或者使用resultMap的collection屬性來實現。
<select id="findUserById" parameterType="int" resultMap="userResultMap">
SELECT * FROM user WHERE id = #{id}
</select>
<resultMap id="userResultMap" type="User">
<result property="id" column="Id"/>
<result property="name" column="Name"/>
<collection property="orders" ofType="Order">
<select id="findOrdersByUserId" parameterType="int" resultType="Order">
SELECT * FROM orders WHERE user_id = #{id}
</select>
</collection>
</resultMap>
<resultMap id="userResultMap" type="User">
<result property="id" column="Id"/>
<result property="name" column="Name"/>
<collection property="orders" ofType="Order" resultMap="orderResultMap"/>
</resultMap>
<resultMap id="orderResultMap" type="Order">
<result property="id" column="Id"/>
<result property="name" column="Name"/>
</resultMap>
在查詢用戶的時候,可以一起查詢出用戶的訂單信息,然后將訂單信息映射到用戶對象的orders屬性中。這樣就實現了一對多關聯查詢的映射。