在MyBatis中,可以使用collection元素來映射一個集合類型的屬性。在mapper文件中,可以通過collection元素來定義該集合屬性的映射規則。
下面是一個示例,假設有一個User類和一個Order類,一個User可以有多個Order,我們可以使用collection元素來映射這個關系:
User類:
public class User {
private Long id;
private String name;
private List<Order> orders;
// 省略getter和setter
}
Order類:
public class Order {
private Long id;
private Long userId;
private String orderNo;
// 省略getter和setter
}
在mapper文件中,可以使用collection元素來定義User類中的orders屬性的映射規則:
<select id="getUserById" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<resultMap id="userMap" type="User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<collection property="orders" ofType="Order">
<result property="id" column="order_id"/>
<result property="userId" column="user_id"/>
<result property="orderNo" column="order_no"/>
</collection>
</resultMap>
在上面的示例中,我們定義了一個resultMap來映射User類,并使用collection元素來映射User類中的orders屬性,ofType屬性指定了集合中元素的類型。在查詢用戶信息時,會同時查詢用戶的訂單信息,并將訂單信息封裝到User對象的orders屬性中。
這樣,通過使用collection元素,可以方便地映射集合類型的屬性,實現對象之間的關聯。