出现下列情况:
员工表Emp和部门表Dept是多对一的关系,员工实体类中有Dept这个属性,
但是多表连接查询的时候只能查出Dept这张表的did和dname,无法和Dept这个属性进行关联,
此时若要查出员工信息表,那么Dept这个属性会是null.
因此需要建立映射关系

方法一:连表查询

<!-- 列名和属性名一一对应 --><resultMap type="Emp" id="map1"><id column="eid" property="eid"/><result column="ename" property="ename"/><result column="age" property="age"/><result column="gender" property="gender"/><!-- 创建Dept对象后,赋值给Emp类中的dept属性 --><association javaType="Dept" property="dept" ><id column="did" property="did"/><result column="dname" property="dname"/>      </association>
</resultMap><select id="getAllEmpWithDept" resultMap="map1">select eid,ename,age,gender,did,dname from Emp e left join Dept d on e.did=d.did
</select>

方法二:分步查询
①先通过eid查询到ename,age,gender,did字段
②通过查询出来的did字段,再查询出Dept表中的dname

<resultMap type="Emp" id="map2"><id column="eid" property="eid"/><result column="ename" property="ename"/><result column="age" property="age"/><result column="gender" property="gender"/><!-- 将getAllEmp的查询结果did赋值到getDeptByDid中 column:作为分步查询的字段名--><association property="dept" select="getDeptByDid" column="did"></association></resultMap><select id="getAllEmp" resultType="map2">select ename,age,gender,did from emp where eid=#{eid}</select><select id="getDeptByDid" resultType="dept">select did,dname from dept where dept=#{did}</select>

MyBatis使用ResultMap处理一对多多对一相关推荐

  1. mybatis使用resultMap实现一对多查询 (需求:查询订单以及订单明细)

    使用resultMap将查询出的订单明细信息映射Order,java的属性中 在Orders.java创建订单明细属性(一个集合对象,一订单对应多个订单明细) public class Orders ...

  2. mybatis的一对一 一对多 多对多

    mybatis的一对一 一对多 多对多 1.表 2.建表语句 order_t表 CREATE TABLE `order_t` ( `id` int(11) NOT NULL, `user_id` in ...

  3. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多

    7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...

  4. mybatis一对多多对多

    转:http://www.cnblogs.com/selene/p/4627446.html 一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: View Code 测试数据代码: View ...

  5. mybatis映射 一对一、一对多、多对多高级映射

    1.数据库执行脚本 创建数据库表代码:   1 CREATE TABLE items ( 2 id INT NOT NULL AUTO_INCREMENT, 3 itemsname VARCHAR(3 ...

  6. mybatis关联配置(一对多配置)

    敲代码也有不少日子了,今天碰到个需求,就是定时器生成一张表,但是这个表的某些数据是从另外两张表中拿到的,定外两张表又是一对多的关系,想着咋在一个接口就能敲出来,大概结构如下 然后需要a表的数据(比如张 ...

  7. 使用mybatis的resultMap进行复杂查询

    记录下mybatis的集合查询中碰到的问题 https://jaychang.iteye.com/blog/2357143 MyBatis ofType和javaType区别 https://blog ...

  8. Mybatis-Plus用纯注解完成一对多多对多查询

    Mybatis-Plus用纯注解搞定一对多&多对多查询 业务中很常见的用户-角色就属于典型的多对多关系. 假设我们需要将用户信息(包括了用户对应的角色信息)查询出来 多对多 数据表结构 use ...

  9. mybatis的resultMap配置详解

    1.mybatis的实体类继承 参考资料: 1.mybatis中实体类,po类继承另一个po类的情况 2.mybatis中resultMap配置细则 实体类的继承的作用是:可以通过继承减少代码在实体类 ...

最新文章

  1. 自增主键为什么不连续_没关紧的水龙头为什么滴水不连续呢?
  2. Ubuntu下如何用Empathy上QQ
  3. windows installer无法启动
  4. 万字长文了解模拟退火算法原理及求解复杂约束问题(源码实现)
  5. 初学Linux应掌握的Shell命令
  6. python3 案例分享--Jupyter Notebook Demo
  7. AsyncTask类浅析
  8. h5自定义相机界面_有没有什么比较好用的H5小程序?
  9. Unity跨iOS、Android平台使用protobuf-net的方法
  10. mysql数据库访问程序_c++程序访问MySQL数据库操作示例
  11. matlab如何把散点放大,如何在matlab中更新散点3图(循环)
  12. 绘制14段米字数码管显示,显示数字和英文字母。
  13. 我的3D虚拟旅游公司的假想
  14. isPrime 判断素数的函数
  15. excel链接隐藏工作表_自动隐藏Excel工作表
  16. soapui 乱码_接口测试-soapui-中文乱码总结
  17. 2022年最新版初级商业数字营销师钻展题库
  18. 直流有刷电机及Matlab/Simulink驱动仿真
  19. 使用python进行web抓取
  20. LeetCode——883. 三维形体投影面积

热门文章

  1. 如何来玩MNIST数据集?
  2. NP-Hard问题及组合最优化问题
  3. 【LeetCode从零单排】No129 Sum Root to Leaf Numbers
  4. 【LeetCode从零单排】No.169 Majority Element(hashmap用法)
  5. Python中的if __name__ == ‘__main__‘
  6. 运满满的技术架构演进之路
  7. Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转
  8. 机器学习算法加强——贝叶斯网络
  9. 【联邦学习】FATE 集群部署 step2
  10. linux下的%zu