订单和订单详情的一对一 ,一对多映射
我们知道,订单和订单详情是一对多的关系,所以在订单Bean(OrderBean)中包含一个订单详情Bean(OrderDetailBean)的集合.
开发步骤:
1、先建好OrderDetailBean
1 package com.november.query.zuoye1; 2 3 import java.sql.Date; 4 5 public class OrderDetailBean { 6 7 //订单详情实体 8 private int orderDetailId; 9 private int orderId; 10 private int goodsId; 11 private int orderAmount; 12 private String orderMoneyPayType; 13 private Date orderPayTime; 14 private int isReview; 15 16 17 public OrderDetailBean() { 18 super(); 19 } 20 21 22 public OrderDetailBean(int orderDetailId, int orderId, int goodsId, 23 int orderAmount, String orderMoneyPayType, Date orderPayTime, 24 int isReview) { 25 super(); 26 this.orderDetailId = orderDetailId; 27 this.orderId = orderId; 28 this.goodsId = goodsId; 29 this.orderAmount = orderAmount; 30 this.orderMoneyPayType = orderMoneyPayType; 31 this.orderPayTime = orderPayTime; 32 this.isReview = isReview; 33 } 34 35 36 public int getOrderDetailId() { 37 return orderDetailId; 38 } 39 40 41 public void setOrderDetailId(int orderDetailId) { 42 this.orderDetailId = orderDetailId; 43 } 44 45 46 public int getOrderId() { 47 return orderId; 48 } 49 50 51 public void setOrderId(int orderId) { 52 this.orderId = orderId; 53 } 54 55 56 public int getGoodsId() { 57 return goodsId; 58 } 59 60 61 public void setGoodsId(int goodsId) { 62 this.goodsId = goodsId; 63 } 64 65 66 public int getOrderAmount() { 67 return orderAmount; 68 } 69 70 71 public void setOrderAmount(int orderAmount) { 72 this.orderAmount = orderAmount; 73 } 74 75 76 public String getOrderMoneyPayType() { 77 return orderMoneyPayType; 78 } 79 80 81 public void setOrderMoneyPayType(String orderMoneyPayType) { 82 this.orderMoneyPayType = orderMoneyPayType; 83 } 84 85 86 public Date getOrderPayTime() { 87 return orderPayTime; 88 } 89 90 91 public void setOrderPayTime(Date orderPayTime) { 92 this.orderPayTime = orderPayTime; 93 } 94 95 96 public int getIsReview() { 97 return isReview; 98 } 99 100 101 public void setIsReview(int isReview) { 102 this.isReview = isReview; 103 } 104 105 106 @Override 107 public String toString() { 108 return "OrderDetialBean [orderDetailId=" + orderDetailId + ", orderId=" 109 + orderId + ", goodsId=" + goodsId + ", orderAmount=" 110 + orderAmount + ", orderMoneyPayType=" + orderMoneyPayType 111 + ", orderPayTime=" + orderPayTime + ", isReview=" + isReview 112 + "]"; 113 } 114 115 116 117 }
2、建好OrderBean,里面放一个OrderDetailBean的集合
1 package com.november.query.zuoye1; 2 3 import java.sql.Date; 4 import java.util.List; 5 6 //订单实体 7 public class OrderBean { 8 9 private int orderId; 10 private int orderNo; 11 private String userName; 12 private int orderState; 13 private int addressId; 14 private Date orderTime; 15 16 //订单对应多个订单详情 一对多的关系,所以维护一个 集合对象 17 List<OrderDetailBean> orderDetail; 18 19 public OrderBean() { 20 super(); 21 } 22 23 public OrderBean(int orderId, int orderNo, String userName, int orderState, 24 int addressId, Date orderTime, List<OrderDetailBean> orderDetail) { 25 super(); 26 this.orderId = orderId; 27 this.orderNo = orderNo; 28 this.userName = userName; 29 this.orderState = orderState; 30 this.addressId = addressId; 31 this.orderTime = orderTime; 32 this.orderDetail = orderDetail; 33 } 34 35 public int getOrderId() { 36 return orderId; 37 } 38 39 public void setOrderId(int orderId) { 40 this.orderId = orderId; 41 } 42 43 public int getOrderNo() { 44 return orderNo; 45 } 46 47 public void setOrderNo(int orderNo) { 48 this.orderNo = orderNo; 49 } 50 51 public String getUserName() { 52 return userName; 53 } 54 55 public void setUserName(String userName) { 56 this.userName = userName; 57 } 58 59 public int getOrderState() { 60 return orderState; 61 } 62 63 public void setOrderState(int orderState) { 64 this.orderState = orderState; 65 } 66 67 public int getAddressId() { 68 return addressId; 69 } 70 71 public void setAddressId(int addressId) { 72 this.addressId = addressId; 73 } 74 75 public Date getOrderTime() { 76 return orderTime; 77 } 78 79 public void setOrderTime(Date orderTime) { 80 this.orderTime = orderTime; 81 } 82 83 public List<OrderDetailBean> getOrderDetail() { 84 return orderDetail; 85 } 86 87 public void setOrderDetail(List<OrderDetailBean> orderDetail) { 88 this.orderDetail = orderDetail; 89 } 90 91 @Override 92 public String toString() { 93 return "OrderBean [orderId=" + orderId + ", orderNo=" + orderNo 94 + ", userName=" + userName + ", orderState=" + orderState 95 + ", addressId=" + addressId + ", orderTime=" + orderTime 96 + ", orderDetail=" + orderDetail + "]"; 97 } 98 99 100 101 }
3、创建接口OrderMapper.java 和 OrderMapper.xml ,注意:这两个的命名必须相同
OrderMapper.java写各种方法的接口,代码如下:
1 package com.november.query.zuoye1; 2 3 import java.util.List; 4 5 public interface OrderMapper { 6 7 List<OrderBean> findOrderList(); 8 9 }
OrderMapper.xml 代码如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 6 <!-- namespace用于区分 sql标签 ,一般为了保证唯一,namespace表示为 包名+xml文件名 --> 7 <mapper namespace="com.november.query.zuoye1.OrderMapper"> 8 9 10 <!-- select * from t_Order ord join t_OrderDetail detail on ord.OrderId = detail.OrderId --> 11 <!-- 查询所有订单:resultMap就是结果集映射 --> 12 <select id="findOrderList" resultMap="orderMap"> 13 select * from t_Order ord join t_OrderDetail detail on ord.OrderId = detail.OrderId 14 </select> 15 16 17 <!-- 自动映射 :当属性名和 字段名一致时,会自动将字段值 装配到 属性中--> 18 <!-- id属性 ,resultMap标签的标识。 19 type属性 ,返回值的全限定类名,或类型别名。 20 autoMapping属性 ,值范围true(默认值)|false, 设置是否启动自动映射功能, 21 自动映射功能就是自动查找与字段名小写同名的属性名,并调用setter方法。 22 而设置为false后,则需要在resultMap内明确注明映射关系才会调用对应的setter方法 23 --> 24 <resultMap type="OrderBean" id="orderMap" autoMapping="true"> 25 <!-- 主键 --> 26 <id property="orderId" column="OrderId"/> 27 <!-- 其他属性 --> 28 <result property="orderNo" column="OrderNo"/> 29 <result property="userName" column="UserName"/> 30 <result property="orderState" column="OrderState"/> 31 <result property="addressId" column="AddressId"/> 32 <result property="orderTime" column="OrderTime"/> 33 34 <!-- 一对多关系映射 --> 35 <!-- property="orderDetailList"的orderDetailList是OrderBean的集合属性 --> 36 <collection property="orderDetailList" ofType="OrderDetailBean" autoMapping="true"> 37 <!-- orderDetailList 实体属性 和 t_OrderDetail 表字段的映射 --> 38 39 <id property="orderDetailId" column="OrderDetailId"/> 40 <result property="orderId" column="OrderId"/> 41 <result property="goodsId" column="GoodsId"/> 42 <result property="orderAmount" column="OrderAmount"/> 43 <result property="orderMoneyPayType" column="OrderMoneyPayType"/> 44 <result property="orderPayTime" column="OrderPayTime"/> 45 <result property="isReview" column="IsReview"/> 46 47 </collection> 48 49 </resultMap> 50 51 </mapper>
4、建立一个测试类 OrderTest
1 package com.november.query.zuoye1; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.util.List; 6 7 import org.apache.ibatis.io.Resources; 8 import org.apache.ibatis.session.SqlSession; 9 import org.apache.ibatis.session.SqlSessionFactory; 10 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 11 import org.junit.Before; 12 import org.junit.Test; 13 14 public class OrderTest { 15 16 private SqlSessionFactory sqlSessionFactory = null; 17 //在执行测试方法之前 执行的 方法 18 @Before 19 public void init(){ 20 //对mybatis环境进行 初始化 21 String resource = "config/mybatis.xml"; 22 23 try { 24 //1)读取配置文件 25 InputStream input = Resources.getResourceAsStream(resource); 26 //2)使用SQlSessionFactoryBuilder 创建SqlSessionFactory 27 sqlSessionFactory = new SqlSessionFactoryBuilder().build(input); 28 29 30 } catch (IOException e) { 31 // TODO Auto-generated catch block 32 e.printStackTrace(); 33 } 34 } 35 36 @Test 37 public void findOrderTest(){ 38 39 SqlSession session = sqlSessionFactory.openSession(); 40 OrderMapper mapper = session.getMapper(OrderMapper.class); 41 List<OrderBean> list = mapper.findOrderList(); 42 session.close(); 43 System.out.println(list); 44 } 45 46 }
5、运行结果
转载于:https://www.cnblogs.com/xsy20181001/p/9898979.html
订单和订单详情的一对一 ,一对多映射相关推荐
- WMS仓库管理系统---(16)订单管理--订单打印
订单打印是订单管理中一个非常重要的环节,订单分配完成后就可以进行订单打印操作了.订单打印会打印出订单明细,价格,总价等信息.这一节我们来看看订单打印的相关内容.订单打印会显示出库内操作人员去相应的库位 ...
- 微信支付分支付免押订单租赁订单thinkphp5
智慧零售和先享后付使用微信支付V3版接口规则参见:https://wechatpay-api.gitbook.io/wechatpay-api-v3/ 免押租借和免押速住使用微信支付V2版接口规则参见 ...
- 【实时数仓】DWM层订单宽表之需求分析、订单和订单明细关联源码
文章目录 一 DWM层-订单宽表 1 需求分析与思路 2 订单和订单明细关联代码实现 (1)从Kafka的dwd层接收订单和订单明细数据 a 创建订单实体类 b 创建订单明细实体类 c 在dwm包下创 ...
- mybatis使用resultMap实现一对多查询 (需求:查询订单以及订单明细)
使用resultMap将查询出的订单明细信息映射Order,java的属性中 在Orders.java创建订单明细属性(一个集合对象,一订单对应多个订单明细) public class Orders ...
- 美多商城之订单(提交订单2)
2.4 使用乐观锁并发下单 重要提示: 在多个用户同时发起对同一个商品的下单请求时,先查询商品库存,再修改商品库存,会出现资源竞争问题,导致库存的最终结果出现异常. 2.4.1. 并发下单问题演示和解 ...
- 38 MM配置-采购-采购订单-采购订单审批-定义采购订单审批过程
业务背景:定义采购订单审批过程 事务码:SPRO SPRO路径:物料管理->采购->采购订单->采购订单的下达过程->定义采购订单审批过程 第1步,SPRO进入 第2步,选择& ...
- 37 MM配置-采购-采购订单-采购订单审批-编辑类
业务背景:定义采购订单审批类 事务码:CL02 SPRO路径:物料管理->采购->采购订单->采购订单的下达过程->编辑类 第1步,SPRO进入 第2步,创建审批类 配置完成! ...
- 36 MM配置-采购-采购订单-采购订单审批-编辑特性
业务背景:定义采购订单审批特性 事务码:CT04 SPRO路径:物料管理->采购->采购订单->采购订单的下达过程->编辑特性 第1步,SPRO进入 第2步,创建 采购申请 审 ...
- SAP 生产订单/流程订单中日期的解释
SAP 生产订单/流程订单中日期的解释 基本开始日期:表示订单的开始日期 基本完成日期:表示订单的完成日期 我们在输入基本开始日期和基本完成日期时需要关注 调度 下面的"类型",其 ...
最新文章
- Nature年度十大杰出论文公布:机器狗算法、近室温超导等入选,复旦中科院上榜...
- GitHub:人群密度估计最全资料集锦
- Ubuntu之镜像iso安装系统
- 真实感水面绘制-资料收集
- 我的常用软件大公开!
- 使用注解装配Bean
- mie散射理论方程_电磁散射工程应用基础
- Linux网络实时流量监测工具iftop的安装使用
- Redis-慢查询分析
- Ubuntu网络连接激活失败
- 微信小程序,Python爬虫抓包采集实战,采集某成考题库小程序
- android中热更新模式,Android热更新与开启Instant Run
- 【看表情包学Linux】进程阻塞 | 轮询检测 | 基于非阻塞等待的轮询方案 | 进程程序替换 | exec 函数簇
- java基础知识--(常用类)String类
- java二维数奇数组金字塔_金字塔内神秘的数字~世界末日真的存在?
- 【历史上的今天】4 月 25 日:诺基亚与微软完成交易;Mobilinux 发布;长距离无线电传输之父出生
- 第十三章 使用动态SQL(三)
- 8.python wave 批量截取2s音频
- GBase 8c V5 单机版安装示例
- OpenWrt计划任务定时关闭WIFI
热门文章
- 宏病毒组(五)|病毒基因组系统发育树
- 使用Python实现Linux命令的批量执行
- Flow 是一个静态类型检测工具
- VIN码识别技术加速汽车后市场服务速度
- 蘑菇街Java后台面试总结
- yarn logs 查看日志
- java中equals方法重写详解(彻底搞定)
- java修饰词严格程度_Java修饰词的总结
- 深度学习 | MATLAB Deep Learning Toolbox lstmLayer 参数设定
- Like What You Like: Knowledge Distill via Neuron Selectivity Transfer论文初读