开发工具与关键技术:Java、myEclipse
作者:吴晓佩
撰写时间:2019年07月24日

在做项目时碰到新增一条订单但要新增多个其他对象的情况,在新增数据的时候可以有多种不同的方法。如下是我在学习做一个酒店管理系统对新增房台订单的处理方法,一条订单可以预定多个房台,实现联台的操作。举例如下jsp页面:
方法一:在jsp循环提交数据,在jsp页面获取需要新增的房台的个数,根据房台的个数循环提交数据到servlet中,然后在servlet查询并判断传输过来的订单是否已经存在,如果不存在就新增订单,如果存在就获取此订单的ID然后新增订单明细的信息。
Jsp页面代码如下:

Servlet的代码就是就是普通的新增数据,第一次循环新增订单跟第一条房台明细,然后返回数据到jsp,但是for循环并没有执行完,然后继续执行循环体,再请求servlet,然后查询判断是否存在该订单,存在则不新增订单,直接新增订单明细。此方法循环需要在servlet与jsp之间来回循环,但是这种方式在servlet编写就比较简单。就不举例servlet了。

方式二:利用数组传参。
在jsp声明一个数组tablearr

获取需要新增的房台的长度,循环给tablearr数组赋值,因为我是使用form表单来提交数据的,所以需要把数组的值存放到from表单中。当使用post提交时需要把数组转化为String类型(tablearr.toString )。

在servlet接收参数,此时的参数是String类型的参数,并不是数组,所以不可以用数组的属性来操作数据。需要对参数进行分割然后提取。

分割参数,然后把参数再装进Servlet声明的数组里,此时就可以调用数组的方法来操作其中的数据了。

当订单表数据新增完成之后就把新增房台明细的循环体嵌在其中,以上图分割储存的数组长度为循环的次数,然后用索引来获取下标新增数据。
小结:
以上的两种方法都可以解决同时新增一个订单与多个明细的操作。两者的区别:方法一,需要在jsp与servlet之间来回循环,且需要在servlet查询判断是否已存在订单。而方法二是先需要在jsp循环把多个需要新增的元素添加到数组,再一次性传输到servlet,然后在servlet获取并分割,servlet也需要写循环语句,有两个循环语句,但无需来回请求servlet。

同时新增一个订单与多个明细的方法相关推荐

  1. 多对多查询:一个用户创建多个订单,一个订单包含多个订单明细,一个订单明细包含一个商品

    <!-- 多对多查询:一个用户创建多个订单,一个订单包含多个订单明细,一个订单明细包含一个商品 --><resultMap type="com.hbut.po.User&q ...

  2. 金蝶云星空采购订单套打模板明细表里相同编码取最小交货日期

    金蝶云星空采购订单套打模板明细表里相同编码取最小交货日期 1.场景根据交货日期在打印时取"交货日期"的最小值.实现效果如下. 2.根据采购订单的明细行取最小交货最小日期:采购订单如 ...

  3. 畅捷通T+与畅捷通T+对接集成批量新增销售订单连通存货批量创建(批量新增销售订单)

    畅捷通T+与畅捷通T+对接集成批量新增销售订单连通存货批量创建(批量新增销售订单) 对接系统畅捷通T+ "T+"是一款灵动.智慧.时尚的互联网管理软件,主要针对中小型工贸和商贸企业 ...

  4. 面试官:如何设计一个 订单系统?

    大家好,我是田哥,昨天有个朋友去面试,被问到订单系统如何设计,主要是因为他简历上有个电商相关的项目.幸好这位兄弟一开始有所准备,不然这场面试估计就凉了. <Java 面试辅导>来啦!田哥和 ...

  5. numpy给数据新增一个维度np.newaxis及其使用场景

    numpy给数据新增一个维度np.newaxis及其使用场景 a = [10,20,30,40,50] a = np.array(a)print(a.shape) a = a[:, np.newaxi ...

  6. linux 内核 call,在Linux Kernel內新增一个System Call(转)

    在Linux Kernel內新增一个System Call(转)[@more@]本文作者: gpmoney 使用 system call 去呼叫系統的函式是非常好玩的,但是要如何寫出一個自己的syst ...

  7. androidexternal目录下新增一个可执行应用及编译

    androidexternal目录下新增一个可执行应用及编译 新增的应用为test文件夹,此文件夹下包含Android.mk和test.cpp文件,Android.mk内容如下: LOCAL_PATH ...

  8. Android编译系统分析四:实战-新增一个产品

    通过上一节"android编译系统(三)-make"的分析,初步理清楚了编译初期加载产品相关信息的流程,整个过程主要涉及三个文件:1.AndroidProducts.mk,2.具体 ...

  9. 重磅!新增一个假期!此地已正式发文!

    婚假,产假,陪产假 我们都有听说过,身边也有人享受过! >>>> 但"育儿假"你听说过吗? 好消息来了 某地新增一个假期--育儿假 已正式发文! 2019年 ...

  10. java订单类_基于Java创建一个订单类代码实例

    这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订 ...

最新文章

  1. esp32摄像显示时间_TinyPICO-比拇指还小的ESP32开发板- 国外创客众筹发现第二期
  2. js经典试题之ES6
  3. 再次证明消息四元组的处理顺序。
  4. 海思 HI35* rtsp服务器
  5. 【代码规范】google开源c\c++项目代码规范
  6. 对 Oracle 备份与恢复 的补充说明
  7. bzoj1854: [Scoi2010]游戏 贪心
  8. 【系统分析师之路】第十七章 复盘多媒体基础知识
  9. 系统集成j2cache
  10. x509证书cer格式转pem格式
  11. 遥感图像通用数据格式(BSQ\BIL\BIP)的理解
  12. 【你不知道的】win10 “你的手机” 正确打开方式:无缝连接手机电脑
  13. HTML5+CSS3练习小实例:发光果冻泡泡动画
  14. No application encryption key has been specified laravel
  15. 【CTO讲堂】企业该如何打造自身的“安全免疫系统”?
  16. 证券交易api 查询证券编码及基本上市信息
  17. java电脑中可以删除吗,电脑中c盘cflog是什么文件夹?是否可以随意删除
  18. 20180402-A · US Tuition Costs · ggplot2, 折线图 · R 语言数据可视化 案例 源码
  19. 【IOT】智能楼宇 - HVAC 暖通技术
  20. CF850D Tournament Construction

热门文章

  1. 计算机软件如何永久删除,电脑上如何卸载软件? 如何从电脑上彻底删除一个软件?...
  2. 什么是串口通信UART?
  3. php ucenter单点登录,说说ucenter的单点登录
  4. 更深一步了解,电容是起什么作用的?
  5. vue实现画出页面二维码的3种办法
  6. oeasy教您玩转vim - 48 - # ed由来
  7. 高等教育中的人工智能市场现状研究分析报告-
  8. 吃货在东京 -- 记那段吃不饱的日子 之一 牛头自助烤肉店
  9. oracle 10g、11g、 12c、19c有什么区别
  10. C语言分数加减法编程,分数加减法(C语言)