一、SSH框架网上商城项目第19战之订单信息级联入库
- 背景
在网上商城项目中,订单信息是非常重要的部分,订单信息必须要从前台传入后台,并在后台进行级联入库,即插入订单主表和订单明细表中。订单明细表中需要存储订单对应的商品信息,包括商品ID、商品名称、商品单价、购买数量、小计等。
- 具体步骤
(1)在订单主表中插入订单的基本信息。
(2)获取前台传来的购买商品列表(可以使用购物车功能实现)。
(3)遍历购买商品列表,获取每个商品的基本信息和购买数量。
(4)在订单明细表中插入每个商品的详细信息,包括商品ID、商品名称、商品单价、购买数量、小计等。
(5)更新商品库存信息,在商品表中减去对应商品库存数量。
- 示例说明
代码示例1:在订单主表中插入订单的基本信息
// 获取订单信息
Order order = getOrderInfo();
//插入订单信息
orderDao.save(order);
代码示例2:在订单明细表中插入每个商品的详细信息
// 获取商品列表
List<Goods> goodsList = getGoodsList();
// 遍历商品列表,获取每个商品的信息
for(Goods goods : goodsList){
OrderDetail orderDetail = new OrderDetail();
orderDetail.setOrderId(order.getOrderId());
orderDetail.setGoods(goods);
orderDetail.setNum(num);
orderDetailDao.save(orderDetail); // 插入订单明细信息
}
二、SSH框架网上商城项目第19战之页面缓存问题
- 背景
在网上商城项目中,为了提升用户体验,减少网络请求,我们可以将一些页面数据进行缓存,当用户再次请求该页面时,可以直接从缓存中获取数据,而不用再次从数据库中查询,从而减少了对数据库的访问压力。
- 具体步骤
(1)选择需要进行缓存的页面,并确定缓存时间。
(2)在Action中通过cache标签实现数据缓存。
(3)在JSP页面中通过EL表达式从缓存中取出数据。
- 示例说明
代码示例1:定义缓存cache标签
<cache>
<key name="缓存键"></key>
<expiry>${10*60}</expiry>
</cache>
代码示例2:在JSP页面中通过EL表达式从缓存中取出数据
<c:forEach var="goods" items="${goodsList}">
<tr>
<td>${goods.goodsId}</td>
<td>${goods.goodsName}</td>
<td>${goods.goodsPrice}</td>
<td>${goods.createTime}</td>
</tr>
</c:forEach>
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SSH框架网上商城项目第19战之订单信息级联入库以及页面缓存问题 - Python技术站