MyBatis的<association>、<collection>(补档)

        在MyBatis中,<association>和<collection>都是用于处理复杂对象关系映射的关键元素,但它们针对的对象关系类型不同。


Association(一对一关联)

        用途:<association>标签主要用于处理一对一的关系。例如,一个用户(User)对应一个账户(Account)。
        使用场景:当你需要从数据库查询一条记录,并且这条记录与另一个实体存在一对一的关系时,你可以使用<association>来映射这种关系
        示例:

<resultMap id="userResultMap" type="User">
    <id property="id" column="user_id"/>
    <result property="username" column="username"/>
    <association property="account" javaType="Account">
        <id property="accountId" column="account_id"/>
        <result property="accountName" column="account_name"/>
    </association>
</resultMap>

        在这个例子中,User类有一个Account类型的属性,通过<association>标签将查询结果中的相关字段映射到Account对象上。


Collection(一对多关联)

        用途:<collection>标签用于处理一对多的关系。例如,一个部门(Department)对应多个员工(Employee)。
        使用场景:当你需要从数据库查询一条记录,并且这条记录与另一个实体存在一对多的关系时,可以使用<collection>来映射这种关系。
        示例:  

<resultMap id="departmentResultMap" type="Department">
    <id property="deptId" column="dept_id"/>
    <result property="deptName" column="dept_name"/>
    <collection property="employees" ofType="Employee">
        <id property="empId" column="emp_id"/>
        <result property="empName" column="emp_name"/>
    </collection>
</resultMap>

        这里,Department类有一个List<Employee>类型的属性,通过<collection>标签将查询结果中的相关字段映射到Employee对象列表上。


总结

  • <association>用于一对一的关联映射,表示外部对象是一个单独的实例。
  • <collection>用于一对多的关联映射,表示外部对象包含了一个集合或列表的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值