MyBatis Collection 实现延迟加载

一、创建数据库 SQL

CREATE TABLE father (fatherId INT, fatherName VARCHAR(20), fatherAge INT);
CREATE TABLE son (sonId INT, fId INT, sonName VARCHAR(20), sonAge INT);

二、创建与数据库表对应的实体类

public class Father implements Serializable {

    private int fatherId;
    private String fatherName;
    private int fatherAge;
    private List<Son> sonList;
    ...
}
public class Son implements Serializable {

    private int sonId;
    private int fId;
    private String sonName;
    private int sonAge;
	...
}

三、持久层接口

public interface IFatherDao {
    List<Father> findAll();
}
public interface ISonDao {
    Son findById(int id);
}

四、持久层映射文件

IFatherDao.xml

<mapper namespace="chu.yi.bo.dao.IFatherDao">

    <resultMap id="fatherMap" type="chu.yi.bo.domain.Father">
        <id column="fatherId" property="fatherId"/>
        <result column="fatherName" property="fatherName"/>
        <result column="fatherAge" property="fatherAge"/>
        <collection property="sonList" ofType="chu.yi.bo.domain.Son"
            select="chu.yi.bo.dao.ISonDao.findById"
            column="fatherId"/>
    </resultMap>

    <select id="findAll" resultMap="fatherMap">
        select * from father;
    </select>
</mapper>

ISonDao.xml

<mapper namespace="chu.yi.bo.dao.ISonDao">
    <select id="findById" resultType="chu.yi.bo.domain.Son" parameterType="int">
        select * from son where fId = #{fatherId}
    </select>
</mapper>

五、测试

List<Father> fatherList = iFatherDao.findAll();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值