Mybatis多对多关联映射实例
来源:互联网 发布:手机视频剪辑软件知乎 编辑:程序博客网 时间:2024/05/16 15:47
Mybatis多对多关联映射实例
需求:查询购买了商品的用户的信息和用户的订单信息以及订单的明细。
这句话有点绕,稍微捋一捋,假设天明在京东商城有过一次购物经历
这一次他买了三个旺仔小馒头和4瓶旺仔牛奶
现在的需求就是需要
(1)、查询出天明的信息
(2)、天明下的那个订单的信息
(3)以及订单里面购物清单的详细信息。
(4)、详细信息中商品的信息
关联思路:
将用户信息映射至user中
在user类中添加订单列表属性List<Orders>orderslist
,将用户创建的订单映射至orderlist
在Order中添加订单明细列表属性List<OrderDetail>orderdetials
,将订单明细映射到orderdetials中
在OrderDetial中添加items属性,将订单明细所对应的商品映射到Items中
sql语句
SELECT o.id as orderId, o.note, o.createtime, o.number, o.user_id, u.address, u.sex, u.username, od.id AS orderdetail_id, od.items_id AS itemsId, od.items_num AS itemsNum, od.orders_id AS ordersID, i.createtime, i.detail, i.id AS itemID, i.name AS itemName FROM USER u, orders o, orderdetail od, items i WHERE o.user_id = u.id and o.id = od.orders_id AND od.items_id = i.id
mapper.xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.hl.mybatis.first.mapper.OrdersCustomMapper"> <!-- 查询用户关联 查询订单和订单明细以及商品 ResultMap --> <resultMap type="com.hl.myabtis.first.beas.User" id="ordersAndOrderdetailItemsResultMap"> <!-- 用户信息 --> <id column="user_id" property="id"/> <result column="address" property="address"/> <result column="sex" property="sex"/> <result column="username" property="username"/> <!-- 订单信息 一个用户对应多个单 --> <collection property="orderlist" ofType="com.hl.myabtis.first.beas.Orders"> <id column="orderId" property="id"/> <result column="user_id" property="user_id"/> <result column="number" property="number"/> <result column="createtime" property="createtime"/> <result column="note" property="note"/> <!-- 订单明细 一个订单对应多个订单明细 --> <collection property="orderdetails" ofType="com.hl.myabtis.first.beas.Orderdetail"> <id column="orderdetail_id" property="id"/> <result column="itemsId" property="items_id"/> <result column="itemsNum" property="items_number"/> <result column="ordersID" property="orders_id"/> <!-- 商品信息 一个订单明细对应一个商品信息 --> <association property="items" javaType="com.hl.myabtis.first.beas.Items"> <id column="itemID" property="id"/> <result column="itemName" property="name"/> <result column="price" property="price"/> <result column="detail" property="detail"/> <result column="pic" property="pic"/> <result column="createtime" property="createtime"/> </association> </collection> </collection> <!-- 明细信息 --> <!-- 商品信息 --> </resultMap> <!-- 查询订单关联 查询用户信息和订单明细以及商品 ResultMap映射--> <select id="findOrdersAndOrderdetailAndItemsResultMap" resultMap="ordersAndOrderdetailItemsResultMap"> SELECT o.id as orderId, o.note, o.createtime, o.number, o.user_id, u.address, u.sex, u.username, od.id AS orderdetail_id, od.items_id AS itemsId, od.items_num AS itemsNum, od.orders_id AS ordersID, i.createtime, i.detail, i.id AS itemID, i.name AS itemName FROM USER u, orders o, orderdetail od, items i WHERE o.user_id = u.id and o.id = od.orders_id AND od.items_id = i.id </select> </mapper>
层层嵌套,不要迷糊!
阅读全文
0 0
- Mybatis多对多关联映射实例
- Mybatis一对多关联映射实例
- mybatis 的关联映射 一对一 对多
- MyBatis 关联映射之多对多
- MyBatis 关联映射之一对多
- MyBatis 关联映射之多对多
- 关联映射----多对一小实例
- Hibernate关联映射---多对一实例分析(单项关联)
- MyBatis多对一,一对多关联映射
- MyBatis多对一,一对多关联映射
- Mybatis多表关联映射
- Hibernate关联映射 --- 多对多实例分析
- 多对多关联映射
- 多对一关联映射
- Hibernate关联映射-----多对多关联
- JPA关联映射 - 多对多映射
- Hibernate关联映射--多对一映射
- MyBatis关联表映射(一对多、多对多、一对一、多对一)
- Android运营商名字显示规则
- spring boot 整合mongodb
- keras配置TensorFlow_or_theano
- Centos安装svn服务器
- 【模板】线段树 区间加,区间求和 (模板题:P3372线段树1)
- Mybatis多对多关联映射实例
- Android开发bug总结
- 微信小程序开发知识点总结
- c# 全屏显示窗体
- 设置文字突出变色显示
- 离散题目12
- Python 中 os 模块的使用
- iOS开发中的常用权限
- 面向对象继承的问题