美文网首页
mybatis的关联映射

mybatis的关联映射

作者: Apple_Boy | 来源:发表于2019-08-12 23:31 被阅读0次

在查询时经常需要获取两个或两个以上关联表的数据,通过关联映射可以由一个对象获取相关联对象的数据。例如查询一个Emp员工对象,可以通过关联映射获取员工所在部门的Dept对象信息。

MyBatis的关联映射有以下两种不同的表现形式:

  • 嵌套查询:通过执行另外一个SQL映射语句来返回关联数据结果(查2次)

  • 嵌套结果:执行一个表关联SQL查询,将结果映射成关联对象(查1次)

嵌套查询:

<select id="findById" parameterType="java.lang.Integer" resultMap= "empMap">
   select * from EMP where EMPNO=#{id}
</select>

<select id="selectDept" parameterType="java.lang.Integer" resultType="Dept">
   select * from DEPT where DEPTNO=#{id}
</select>

<resultMap type="Emp" id="empMap">
   <association property="dept" column="DEPTNO" javaType="Dept"     select="selectDept">
   </association>
</resultMap>

当利用findById查询EMP时,只会查询EMP表返回一个Emp对象,当访问Emp对象的dept属性时,会调用selectDept查询操作获取DEPT表相关的记录

嵌套结果:

<select id="findById" parameterType="java.lang.Integer" resultMap= "empMap">
    select  e.empno,e.ename,e.job,e.mgr,e.sal,e.comm,e.hiredate,e.deptno,
    d.dname,d.loc from EMP e join DEPT d on(d.deptno=e.deptno)
    where e.EMPNO=#{id}
</select>

<resultMap type="Emp" id="empMap">
   <id property="empno" column="EMPNO" />
   <result property="ename" column="ENAME" />
   <result property="job" column="JOB" />
   <result property="mgr" column="MGR" />
   ...
   <association property="dept" column="DEPTNO" javaType="Dept">
   <id...
   <result...
   </association>
</resultMap> 

相关文章

  • MyBatis 关联映射

    客观世界中的对象很少有孤立存在的,例如班级,往往与班级的学生存在关联关系,如果 得到某个班级的实例,那么应该可以直...

  • MyBatis关联映射

    多对一单向关联映射 配置方法一: 配置方法二: 配置方法三: 多对一/一对多双向关联映射 配置方法一: 配置方法二:

  • mybatis的关联映射

    在查询时经常需要获取两个或两个以上关联表的数据,通过关联映射可以由一个对象获取相关联对象的数据。例如查询一个Emp...

  • MyBatis的关联映射

    三种关联关系 一对一:在任意一方引入对方主键作为外键。 一对多:在“多”的一方,添加“一”的一方的主键作为外键。 ...

  • MyBatis(五)-关联映射

    关联关系概述 在关系型数据库中,多表之间存在着三种关联关系,分别为一对一、一对多和多对多,如图所示。 这三种关联关...

  • 4.mybatis关联映射

      前面几篇关于mybatis的文章中的案例都是基于单表下面的操作,如果涉及多表之间的操作情况就变复杂了,常见的多...

  • MyBatis的关联映射(学习笔记)

      本文针对MyBatis的关联映射,重点在于:(1)不同的关联关系(一对一、一对多、多对多)如何创建数据表和在对...

  • Mybatis映射文件

    mybatis二级缓存在的问题? 1、Mybatis 映射文件之增删改: 2、Mybatis 映射文件之 Inse...

  • JavaEE基础知识学习----MyBatis(三)映射文件

    MyBatis映射文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在 。SQL 映射文件有很少的几...

  • [JAVAEE]实验07:MyBatis关联映射实践

    一、实验目的: 掌握MyBatis的关联映射(一对一、一对多、多对多)实验内容:模拟用户批量购买理财产品的业务。用...

网友评论

      本文标题:mybatis的关联映射

      本文链接:https://www.haomeiwen.com/subject/wpqmjctx.html