示例:

查询订单表及订单明细信息。

编写sql查询语句:

SELECTorders.*, USER .username ,USER .sex,USER .address,orderdetail.id as orderdetail_id,orderdetail.items_id,orderdetail.items_num,orderdetail.orders_id
FROMorders,USER,orderdetail
WHEREorders.user_id = USER .idANDorderdetail.orders_id=orders.id

结果如下:

order定义:

resultMap配置:

<!-- 定义订单查询关联用户的resultMap --><resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersUserResultMap"><!-- 配置映射的订单信息 --><id column="id" property="id" /><!-- 订单信息的唯一标识 --><!-- 如果有多个列,组成唯一标识,配置多个id --><result column="user_id" property="userId" /><result column="number" property="number" /><result column="createtime" property="createtime" /><result column="note" property="note" /><!-- 配置映射的关联的用户信息 --><!-- association:用于映射关联查询单个对象的信息 property:将关联查询的用户信息映射到orders的那个属性中 --><association property="user" javaType="cn.itcast.mybatis.po.User"><!-- 关联查询的用户的唯一标识 column:指定唯一标识用户信息的列 --><id column="user_id" property="id" /><result column="username" property="username" /><result column="sex" property="sex" /><result column="address" property="address" /></association></resultMap><!-- 查询订单及订单明细的resultMap --><!--  extends:使用继承就不用配置订单信息和用户信息的映射了--><resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersAndOrderDetailResultMap" extends="OrdersUserResultMap"><!-- 订单信息 --><!--     <id column="id" property="id" />订单信息的唯一标识如果有多个列,组成唯一标识,配置多个id<result column="user_id" property="userId" /><result column="number" property="number" /><result column="createtime" property="createtime" /><result column="note" property="note" />用户信息<association property="user" javaType="cn.itcast.mybatis.po.User">关联查询的用户的唯一标识 column:指定唯一标识用户信息的列<id column="user_id" property="id" /><result column="username" property="username" /><result column="sex" property="sex" /><result column="address" property="address" /></association> --><!-- 明细信息 一个订单关联查询除了多条明细信息 要使用collection来进行映射 collection:实现了对关联查询到的多条记录进行映射 property:将关联查询到的多条记录映射到cn.itcast.mybatis.po.Orders的哪个属性 ofType:要映射到集合属性中pojo的类型 --><collection property="orderDetials" ofType="cn.itcast.mybatis.po.OrderDetial"><!-- 订单明细的唯一标识 --><!-- id:订单明细的唯一标识 --><id column="orderdetail_id" property="id" /><result column="items_id" property="itemsId"/><result column="items_num" property="itemsNum"/><result column="orders_id" property="ordersId"/></collection></resultMap>
<!-- 查询订单关联用户及订单明细 --><select id="findOrdersAndOrderDetailResultMap" resultMap="OrdersAndOrderDetailResultMap">SELECTorders.*, USER .username ,USER .sex,USER .address,orderdetail.id as orderdetail_id,orderdetail.items_id,orderdetail.items_num,orderdetail.orders_idFROMorders,USER,orderdetailWHEREorders.user_id = USER .idANDorderdetail.orders_id=orders.id</select>

小结:

1,使用collection来映射一对多中的List属性;

2,使用extends来继承其他resultMap;

MyBatis Review——一对多关系映射配置相关推荐

  1. Hibernate中的一对多关系映射

    Hibernate框架中关系映射中有:一对一.一对多和多对多,但常用的就是一对多,所以本篇博客就大体概述了一下一对多关系映射. 一对多关系: 例如:客户和订单,客户是一,订单是多 创建customer ...

  2. MyBatis一对多关系的配置

    用户与用户订单 关系分析:一个用户对应多个订单,多个订单对应一个用户.(1...n) 实现步骤: 导入jar包: 创建数据库数据表 .在多的一方,添加一的一方的主键作为外键,利用外键关联: 创建poj ...

  3. hibernate 的一对多关联关系映射配置

    hibernate 是操作实体类: 表是一对多的关系,当创建这2个实体的时候 在一的一方定义一个多的一方的集合 在多的一方定义一个一的一方的对象 表是多对多的关系,当创建这2个实体的时候 在互相中都有 ...

  4. Entity Framework 一对多关系映射

    EF中关系映射也是一个很关键的内容,关系映射和属性映射一样,也是在 OnModelCreating 中配置映射.EF中的关系映射有如下三种: One-to-Many Relationship(一对多) ...

  5. (经典)Hibernate的一对多关系映射(三)

    一对多关系是表提出来的概念,两张表之间会存在这种,前提是有外键关联. 例如:省份和城市 如果设计类,怎样描述省份和城市之间的一对多关系 省份类里包含多个城市对象,使用 Set集合来描述 城市类里包含一 ...

  6. MyBatis一对多关系映射

    1.使用的数据脚本为: DROP DATABASE IF EXISTS mybatisdb ; CREATE DATABASE mybatisdb CHARACTER SET UTF8 ; USE m ...

  7. mybatis使用全注解的方式案例(包含一对多关系映射)

    前面我写过ssh:ssh(Spring+Spring mvc+hibernate)简单增删改查案例 和ssm:ssm(Spring+Spring mvc+mybatis)的案例,需要了解的可以去看看, ...

  8. Mybatis 一对多 简单映射配置

    只需在一对多的 "一" Model中定义一个list集合: public class SelectQuestion{// 主键IDprivate Integer id;privat ...

  9. mybatis 一对多关系映射 select子查询 只有一条数据 解决方案

    一般一对多 多的那个会是联合主键 所以要这么设置 <resultMap id="CfdMap" type="com.sxq.cloud.entity.ZhyyB2C ...

最新文章

  1. 马斯克脑机接口遭质疑:不是新技术,没体现神经解码进展
  2. Linux使用dd命令快速生成大文件
  3. uva1504(模拟+暴力)
  4. 解决function id unknown issue
  5. 可迭代对象与迭代器 0318 草稿
  6. android小应用,只能播放一首歌的应用
  7. 计算机科学研究方向介绍
  8. Scrapy爬虫报错AttributeError: ‘NoneType‘ object has no attribute ‘write‘
  9. 小技巧 ----- Java中指定保留几位小数
  10. springmvc自定义404错误处理
  11. NetBeans Weeldy News 刊号 # 53 - Apr 23, 2009
  12. 嵌入式linux调试dsi,做嵌入式开发时,你是怎么实现LCD显示的?
  13. MySQL 第二次练习(源码安装、数据库和表的建立)
  14. 找到7天内要过生日的记录
  15. vs支持java吗_为什么vs不支持java
  16. 网易云音乐、微博成新规后首批IPO企业 招股书披露数据安全风险
  17. java日期计算天数_用Java计算两个日期之间的天数
  18. 【SpringBoot】SpringBoot更改项目编码集
  19. Packetfence 开源网络准入系统
  20. Cors跨域(二):实现跨域Cookie共享的三要素

热门文章

  1. 运维宝典 | 数据千万条,备份第一条,数据找不回,老板两行泪
  2. 开源方案搭建可离线的精美矢量切片地图服务-6.Mapbox之.pbf字体库
  3. windows下安装php5.5的redis扩展
  4. drbd相关知识点解析
  5. 图片剪裁控件——ClipImageView
  6. 大牛养成指南(3):天天写业务代码,如何成为技术大牛?
  7. mysql 循环插入100w
  8. 关于字符串和字符数组的再讨论
  9. 对TRIM SCSI命令的一些分析
  10. iFrame只要竖滚动条,不要横滚动条