订单模块之添加订单之DAO层实现

简介: 快速学习订单模块之添加订单之DAO层实现

开发者学堂课程【Java Web项目实战2:图书商城订单模块之添加订单之DAO层实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/35/detail/782


订单模块之添加订单之DAO层实现


内容简介:

一、生成订单的整体思路

二、如何用代码实现订单生成


一、生成订单的整体思路

生成订单时必然是先对购物车进行一个一键购买后生成一个订单,即真正发起一个订单是在购物车上。


1.点击一键购买后程序流程来到OrderServlet#add()

①创建 Order 对象

*其中订单是通过购物车形成的

*从 session 中获取 cart

*然后使用 cart 来生成 order

*清空购物车

②将对象用来调用 service 的 add(Order order)方法

③保存生成的订单,转发到  /jsos/order/desc.jsp


2.生成订单后创建条目标OrderServlet#add(Order)

操作应该是一个事务

①保存订单

②保存该订单中的所有条目


3.提供方法OrderDao

① addOrder(Order order)

② addOrderItemList(List<OrderItem>orderItemList)(用批处理)


4.显示当前订单/jsps/order/desc.jsp

 

5.生成订单整体流程图如下:

image.png

二、实现生成订单

1.从 DAO 开始,完成第一个功能

添加订单,处理 util 的 Date 转换成 sql 的 Timestamp

public void addOrder(Order order){

 try{

     String sql = “insert into order values(?,?,?,?,?,?)”;

      Timestamp timestamp=new Timestamp(order,getOrdertime(),getTime()):

      Object()parama=(order.getOid(),timestamp,order.getTotal(),

            Order.getState(),order.getOwner().getVid(),

            Order.getAddress());

       qr.update(sql,params);

   } catch (SQLException e);{

      Throw new RuntimeException (e);

}

image.png


插入订单条目

public void addOrderItemList(List<OrderItem>orderItemList) {

QueryRunner类的batch(String sql ,Object[ ] [ ] params),其中params 是多个一位数组,每个一位数组都与 sql 在一起执行一次,多个一维数组就执行多次。

           try{

              String sql = “insert into order values(?,?,?,?,?,?)”;

把 orderItemList 转换成两维数组,把一个 OrderItem 对象转换成一个一维数组。

              Object[][]params=new Object[orderItemList,size()][ ];

循环遍历 orderItemList,使用每个 orderItem 对象 为 params 中每个一位数组赋值

              for (int I =0;i < orderItemList.size();i++){

                 orderItem item = orderItemList.get(i);

                 params[i]=new Object [ ]{item.getIid(),item.getCount(),

                         item.getSubtotal(),item.getOrder().getOid(),

                         item.getBook().getBid());

}

执行批处理

qr.batch(sql,params);

        } catch(SQLException e){

            Throw new RuntimeException(e);

}

image.png

image.png

2.来到 service 中,完成第二个功能

添加订单,需要处理事务

        public void add(Order order){

        }


3.来到 web.serviet,添加方法

添加订单,把 session 中的车用来生成 Order 对象

        public String add(HttpservietRequest requst,HttpServietResponse response)

               throwa ServletException,IOException{

            return null;

         }

相关文章
|
Kubernetes 容器 Perl
k8s命名空间
k8s命名空间
575 0
|
1月前
|
人工智能 安全 Serverless
云计算发展趋势全景解读:2026年技术决策者需要关注什么?
云计算正在从"基础设施搬迁"转向"智能化运行时"。AI原生架构、边缘混合部署、FinOps精细化治理、数据主权合规和零信任安全是当前五条主线,技术决策者需要从业务场景出发,重新审视云架构的选型逻辑。
|
1月前
|
机器学习/深度学习 自然语言处理 监控
大模型应用:Qwen1.5+ChatGLM3联合评测:不同体量大模型意图识别差异验证.122
本文对比评测Qwen1.5-1.8B、ChatGLM3-6B及语义向量模型在意图识别任务中的表现,从准确率、召回率、F1值、响应时间等维度深入分析。实验表明:小模型Qwen1.8B识别能力弱、稳定性差;ChatGLM3-6B达100%宏平均F1,精度卓越但耗时高;混合架构(向量模型兜底+大模型攻坚)兼顾速度与精度,是落地优选方案。
230 2
|
4月前
|
存储 弹性计算 前端开发
阿里云服务器租用价格:活动价500元以内云服务器配置与价格参考
阿里云2026年推出多款500元内的云服务器,包括轻量应用服务器、经济型e实例、通用算力型u1及u2a实例等,配置从2核2G到2核4G不等,满足个人学习、小型企业官网、小程序后端等多样化需求。活动价格低至38元/年起,且新老用户均可享受优惠。购买前建议先领券,进一步降低成本。用户应根据业务需求、流量预估及存储需求,选择最适合的云服务器实例。
460 5
|
11月前
|
机器学习/深度学习 人工智能 机器人
黑箱与具身之间的因子框架( Prompt大模型的自我描述 系列五)
本文探讨大模型的“量子式黑箱”困境,指出其虽强大却缺乏可解释性。作者提出“因子框架”,以结构性推理替代概率坍缩,实现因果可控;并重新定义多模态,从“模态互通”走向“因子统一”。最终指向具身智能的真正起点:让AI在逻辑中融合感知,走出语言,迈向真实世界。
409 9
|
小程序 JavaScript Java
微信小程序的后端开发需要使用什么语言?
【8月更文挑战第22天】微信小程序的后端开发需要使用什么语言?
3559 65
|
10月前
|
数据采集 人工智能 监控
唯品会 API 助力,唯品会平台美妆商品营销效果评估
在电商竞争激烈的环境下,唯品会作为领先特卖平台,其美妆品类的营销效果评估至关重要。通过唯品会 API,商家可实时获取商品、销售及用户行为数据,精准计算 ROI、转化率等关键指标,实现数据驱动的营销优化。本文介绍 API 的应用方法,并结合案例说明如何提升营销效率与销售表现。
|
6月前
|
JSON 缓存 供应链
1688供应商API:评价系统集成与供应商筛选实战指南
本文基于1688开放平台API,详解电商供应链中供应商评价系统对接与智能筛选的技术实现,涵盖评价数据获取、动态评分算法、风控因子集成及缓存优化,提供可落地的代码方案,助力企业提升采购效率、降低纠纷率,实现供应链数字化升级。
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
并行计算 前端开发 异构计算
告别服务器繁忙,云上部署DeepSeek
本文以 DeepSeek-R1-Distill-Qwen-32B-FP8 为例,向您介绍如何在GPU实例上使用容器来部署量化的 DeepSeek-R1 蒸馏模型。