订单模块之添加订单之DAO层实现-阿里云开发者社区

开发者社区> 学堂小助手> 正文

订单模块之添加订单之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;

          }​​

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
常量和变量_数据类型|学习笔记
快速学习常量和变量_数据类型
4 0
常量和变量_格式控制符|学习笔记
快速学习常量和变量_格式控制符
3 0
动态内存分配|学习笔记
快速学习动态内存分配
3 0
二维数组_基本概念|学习笔记
快速学习二维数组_基本概念
5 0
二维数组_内存结构|学习笔记
快速学习二维数组_内存结构
3 0
二维数组的指针访问二维数组|学习笔记
快速学习二维数组的指针访问二维数组
5 0
二维数组_练习2|学习笔记
快速学习二维数组_练习2
4 0
二维数组_练习1|学习笔记
快速学习二维数组_练习1
3 0
分支语句-if语句|学习笔记
快速学习分支语句-if语句
4 0
递归函数|学习笔记
快速学习递归函数
4 0
1220
文章
0
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载