Mybatis中 collection和association的区别

本文详细介绍了MyBatis框架中如何使用association和collection标签进行一对多和多对一的关联映射,通过具体代码示例展示了如何在User.java和Card.java类之间建立正确的关联关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比如同时有User.java和Card.java两个类

User.java如下:

public class User{
	private Card card_one;
	private List<Card> card_many;
}

在映射card_one属性时用association标签, 映射card_many时用collection标签.
所以association是用于一对一和多对一,而collection是用于一对多的关系

association

注意:association 所调用的方法的resultType要和实体中定义的字段一致

public class WhiteListTransferDebtHoldingData {
    private String diffDate;
    private String beforeDate;
    private String busiDate;
}

<resultMap id="WhiteListTransferDebtHoldingData" type="com.WhiteListTransferDebtHoldingData">
        <result property="beforeDate" column="BEFOREDATE" jdbcType="VARCHAR"></result>
        <result property="busiDate" column="BUSIDATE" jdbcType="VARCHAR"></result>
        <association property="diffDate" select="getDiffWorkDate" column="{beforeDate=BEFOREDATE,busiDate=BUSIDATE}"/>
</resultMap>
<select id="getNewDebt" parameterType="map" resultMap="WhiteListTransferDebtHoldingData">
    SELECT 'BEFOREDATE' AS BEFOREDATE, 'BUSIDATE' AS BUSIDATE  FROM DUAL
</select>
<select id="getDiffWorkDate" parameterType="map" resultType="string">
    SELECT COUNT(*) diffDate FROM  DUAL
</select>
collection 同理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值