关联属性的封装(连接查询 & 分步查询),延迟加载

关联属性的封装(连接查询 & 分步查询),延迟加载

在项目中,不可避免的存在着类与类之间的关联,在数据库的表中,这样的关联使用关联属性的主键表示;但在对象中,被关联的属性一般是以对象的形式存在。

举个例子:

学生Student和学院College是多对一的关系,在这里,学生类可以有一个字段,用来存储他/她所在的学院。

public class Student {
   
    Integer id;
    String name;
    College college;
}

使用连接查询

使用连接查询获得college,并且封装到student对象中

public Student getStudentById(Integer id);
    <select id="getStudentById" resultMap="student">
        select *
        from student, college
        where studet.stuent_college = college.college_id
            and student_id = #{id}
    </select>

有了查询的结果,显然Mybatis不能自动封装,需要根据我们配置的reslutMap进行封装。

方式一:嵌套封装

    <resultMap id="student" type="com.test.entity.Student">
        <id column="student_id" property="id"></id>
        <result column="student_name" property="name"></result>

        <!-- 封装college,经过连接查询,已经将对应的学院信息查询出来了 -->
        <asso
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值