<!-- 多对多查询:一个用户创建多个订单,一个订单包含多个订单明细,一个订单明细包含一个商品 --><resultMap type="com.hbut.po.User" id="findUserItemsMap"><!-- 一个用户 --><id column="usersId" property="id"/><result column="username" property="username"/><result column="sex" property="sex"/><result column="address" property="address"/><!-- 多个订单 --><collection property="orderList" ofType="com.hbut.po.Orders"><id column="id" property="id"/><result column="user_id" property="userId"/><result column="number" property="number"/><result column="createtime" property="createtime"/><result column="note" property="note"/><!-- 多个明细 --><collection property="orders" ofType="com.hbut.po.Orderdetail"><id column="orderdetail_id" property="id"/><result column="orders_id" property="ordersId"/><result column="items_id" property="itemsId"/><result column="items_num" property="itemsNum"/><!--一个订单明细包含一个商品--><association property="items" javaType="com.hbut.po.Items"><result column="name" property="name"/><result column="price" property="price"/><result column="detail" property="detail"/></association></collection></collection></resultMap><select id="findUserItems" resultMap="findUserItemsMap">SELECT orders.*,`user`.id usersId,USER.username,USER.sex,USER.address,orderdetail.id orderdetail_id,orderdetail.items_id,orderdetail.items_num,orderdetail.orders_id,items.name,items.price,items.detailFROMorders,USER,orderdetail,itemsWHERE orders.user_id = user.id AND orderdetail.orders_id=orders.id AND orderdetail.items_id=items.id</select>

User类:

//属性名和数据库表的字段对应

private int id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址

//一个用户可以创建多个订单
private List<Orders> orderList;

Orders类:

private Integer id;

private Integer userId;
    private String number;
    private Date createtime;
    private String note;
    //一个订单包含多个订单明细
    private List<Orderdetail> orders;

Orderdetail类

private Integer id;
    private Integer ordersId;
    private Integer itemsId;
    private Integer itemsNum;

//一个订单明细对应一个商品
    private Items items;

Items类(商品类)

private Integer id;
    private String name;
    private Float price;
    private String pic;
    private Date createtime;
    private String detail;

运行结果:一个用户创建的多个订单,每个订单包含多个订单明细,每个订单明细包含一个商品

mybaits中resultMap实现多对多查询映射相关推荐

  1. mybaits 中的配置,应和查询到的参数 一一对应,才可以映射到pojo类中

    在 mybaits 的mapper 配置应该和类中的参数一一对应 import java.io.Serializable;public class User implements Serializab ...

  2. mybatis由浅入深day02_4多对多查询_多对多查询总结

    4 多对多查询 4.1 需求(查询用户及用户购买商品信息) 查询用户及用户购买商品信息. 4.2 sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关 ...

  3. JPA中实现双向多对多的关联关系(附代码下载)

    场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...

  4. 【MyBatis框架】高级映射-多对多查询

    多对多查询 1.需求 查询用户及用户购买商品信息. 2.sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表: orders.orderdetai ...

  5. 多对多查询总结resultType和resultMap

    4.1查询用户及用户购买的商品 SQL语句如下: /****** Script for SelectTopNRows command from SSMS  ******/ SELECT o.* ,u. ...

  6. 高级映射(一):一对一、一对多,多对多查询总结

    多表之间的数据交互 其实一对一和一对多映射,在前面的配置中已经接触到,我没在日志里直接说明,是因为想要在之后写一篇总结日志(就是本篇),总结这些高级映射的配置.例如一对一查询在关联的嵌套结果集查询中就 ...

  7. mybatis高级映射多对多查询(二)

    在这篇博客中,我来介绍下mybatis中的多对多查询的案例,在mybatis中,如何使用ResultMap来实现多对多的查询? 案例:一个user可以有很多role,一个role可以有很多entitl ...

  8. MyBatis框架(二):多对一查询、一对多查询、ResultMap、动态SQL

    在mybatis框架下写代码的步骤: 创建实体类 创建对应的接口 写每个接口对应的xml文件 编写测试类 在一对多查询和多对一查询之前,先准备数据库 以老师和学生为例 老师的数据库 CREATE TA ...

  9. Mybaits中association的用法详解

    作用:在Mybaits中association标签是用来实现连表查询的. 使用的背景:association的使用场景为1:1和n:1两种情况. 添加的内容:使用association的时候需要在类中 ...

最新文章

  1. 使用complete的图片属性检测图片是否加载完毕
  2. 【Groovy】集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )
  3. Shell编程: Shell 变量
  4. java实现单链表常见操作,java面试题,java初级笔试题
  5. 每个 JavaScript 工程师都应懂的33个概念
  6. Vue指令(二)--数组的变动
  7. 深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
  8. 楚留香ai识别人脸_【专利解密】商汤科技:AI加持人脸识别
  9. 玩转STM32(4)学会目录分类
  10. 【设计模式 三】实战工厂汽车代工之工厂模式-简单模式
  11. java中hash值什么意思_到底什么是hash?它起什么作用?
  12. # 学号12 2016-2017-7 《程序设计与数据结构》第7周学习总结
  13. MsCOCO数据集标注详解
  14. Java复数类实现加减乘除运算
  15. MAC电脑存储空间占用过高怎么办?
  16. Spring源码里开天辟地的五个Bean,再介绍一个学习方法
  17. 本题要求实现一个函数,对给定平面任意两点坐标(x 1​ ,y 1​ )和(x 2​ ,y 2​ ),求这两点之间的距离。
  18. (Java)IO流对象(三)字符流
  19. 不知道干些什么,那就看看书吧!
  20. Oracle Linux6.9下安装Oracle 11.2.0.4.0及psu补丁升级

热门文章

  1. Java多线程之线程封闭(三)
  2. IDEA2020版本如何导入jar包
  3. 蓝桥杯 试题 基础练习 Huffuman树——13行代码AC
  4. mysql 8.0.22_mysql 8.0.22 安装配置图文教程
  5. xavier初始化_深入解读xavier初始化(附源码)
  6. php读取移动硬盘数据,移动硬盘打不开,数据怎么恢复?
  7. android dialog 结构,Android 原生Dialog实现
  8. 如何查询spark版本_掌握Spark SQL中的查询执行
  9. python的out模式_如何用python中的DataFrame列的模式替换NA值?
  10. batocera游戏整合包_星露谷物语绅士mod整合包