目标:
在购物车页面,增加一个创建订单的超链接。通过创建订单,在Order表里新增一条数据,同时把session中的订单条目都保存到数据库中。
1、创建两个表,orders用来具体存储每一个订单的细节,order_用来存储某个用户对应的订单号。id都设计为自动增长
2、写一个order类用来对应order_
3、给orders类加一个order属性,order里对应的id对应数据表orders里的oid。
4、写一个orderdao负责向数据表order_ 中添加订单记录。由于我们order_表中的id设计的是自增长,所以每个记录uid都会自动分配一个id。现在我们把uid存进数据库后还要拿着这个分配的id赋值给order本身,便于之后使用。
注意:在 Java 中,可以使用 PreparedStatement
的 getGeneratedKeys()
方法来获取在数据库中自动生成的键值。
5、再来一个ordersdao类用来把orders类的数据保存到OrderItem表中
6、我们要在购物车页面加一个超链接便于跳转
7、最后一步:写ordercreate的servlet。
需要完成的操作有:1. 首选判断用户是否登陆,如果没有登陆跳转到登陆页面
2. 创建一个订单对象,并设置其所属用户
3. 把该订单对象保存到数据库中
4. 遍历session中所有的订单项,设置他们的Order。 然后保存到数据库中
5. 清空session中的订单项
6. 最后打印订单创建成功
这里其实与之前板块有一个呼应,很多人不明白之前的用户模块的servlet在处理用户登录时用了这句request.getSession().setAttribute(
"user"
, user);把数据存进session中,这里第一步判断用户是否登录就用到了这个细节。
到这里大功告成,我们来完整的用一下这个功能。
最后附上整个练习的代码结构