先在数据库添加订单表和订单项表
创建订单和订单项的JavaBean
生成订单:
本质就是将session里的购物车信息保存到数据库中
将cart对象 封装成订单对象保存到数据库
将cart对象 购物项封装成订单项保存到数据库
1.前端:
1.把提交订单的a标签效果清空,按钮类型改为button,绑定点击事件
2.定义提交订单函数,直接发请求不用提交任何参数,因为所有内容
存储在session里
3.发送ajax请求 方法submitOrder 没有参数
4.判断返回数据,如果是2代表未登录,跳转到登录页面
5.如果为0代表购物车为空,在购物车详情div中添加一个id
获取div在里面追加一个拼接的div显示message字段
2.后端:
先决条件必须登录
购物车不能为空
1.获取session对象,获取里面的user对象
2.判断user是否为空,如果为空调用父类nologin方法返回信息
return结束程序
3.购物车不能为空,把getCart方法封装到父类方法中
调用getcart获取购物车,判断cart中item集合为空
返回fail信息购物车是空的,return结束程序
4.创建order对象,把cart转化成order,自己set添加属性值
注意state使用global设置好的字段,ordertime newDate
oid使用UUIDUtil随机生成
5.创建一个泛型orderItem的ArrayList,用来保存订单项对象
6.把cart 购物项item转化成订单项
获取cart中的item集合,遍历集合,创建orderitem订单项对象
自己set添加属性值,
7.调用service方法把订单和订单项保存到数据库
8.返回成功信息.
9.service层开启事物:
1.DataSourceUtil.begin开启事物 报错try catch
2.commit提交事物
3.rollback回滚事物
10.service层调用dao保存数据,注意遍历订单项集合再保存订单对象
11.开启事物管理后不能在qr中getDataSource创建连接,这样使用的连接和
事物管理中的连接不一样,要在执行语句时传入连接getconnection,
使用insert语句保存到数据库