电子商城项目 (八)订单模块

项目已上传GitHub,请点击这里访问下载

在淘宝上,将挑选的商品放入购物车后,点击提交订单后,就会进入到结账以及填写联系人地址的页面。

1.购物车页面到订单页面的代码

在cart.jsp中,设置当点击提交订单跳转到OrderServlet处理订单的页面的功能。
在这里插入图片描述

2.订单数据库

需要将用户的订单保存下来,就需要用到数据库,这个模块总共需要用到两个数据库,一个是订单数据库,另外一个是订单项数据库。
订单数据库

这里的uid是外键
total 是本次订单中,所有订单项的总价

在这里插入图片描述
订单项数据库

其中pid和uid是外键,pid指向商品表 oid指向订单表
在这里插入图片描述

2.OrderServlet处理订单页面的功能

订单同购物车原理相同,首先需要一个装订单项的集合。这里我们用Arraylist来存放订单项,订单包含订单id、订单时间、订单总价、订单的状态(未发货、已发货、已签收等)、收件地址、姓名、电话、用户uid。订单项中有:订单项id、该类商品的数量、总价、商品id、属与哪一次订单的id。
为了存取数据方便,需要定义一个Order类和OrderItem类。

Order类
在这里插入图片描述

OrderItem类
在这里插入图片描述

OrderServlet代码
这里首先要判断用户是否登录,如果没有登录的话,是不可以操作这个功能的。由于之前将购物车存入了session中,这里可以直接取出来给Order以及OrderItem中的属性赋值。
在这里插入图片描述
这里设计的比较巧妙,就是将订单项也放入了订单的LIST中,这样传数据的话,直需要传递Order就可以看,这里包括了所有的信息。

4.Service层代码的编写

这块比较简单,就是将C层传递过来的数据调用dao层存储到数据库中。不过这里有个非常重要的步骤,因为这里面将数据库存储的时候,既要往数据库Orders中存,又要往数据库OrderItem中存储。而且这两个表是有联系的,所以要么存储成功就都成功,要么都失败回滚到之前的状态。
在这里插入图片描述

5.Dao层的代码

就是对数据库的基本操作。
在这里插入图片描述

6.效果图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/88613760