温馨提示×

如何使用mybatis的collection

小樊
103
2024-07-19 21:21:44
栏目: 编程语言

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

0