在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元素,可以方便地映射集合类型的属性,实现对象之间的关联。