SSH框架网上商城项目第19战之订单信息级联入库以及页面缓存问题

一、SSH框架网上商城项目第19战之订单信息级联入库

一、SSH框架网上商城项目第19战之订单信息级联入库

  1. 背景

在网上商城项目中,订单信息是非常重要的部分,订单信息必须要从前台传入后台,并在后台进行级联入库,即插入订单主表和订单明细表中。订单明细表中需要存储订单对应的商品信息,包括商品ID、商品名称、商品单价、购买数量、小计等。

  1. 具体步骤

(1)在订单主表中插入订单的基本信息。

(2)获取前台传来的购买商品列表(可以使用购物车功能实现)。

(3)遍历购买商品列表,获取每个商品的基本信息和购买数量。

(4)在订单明细表中插入每个商品的详细信息,包括商品ID、商品名称、商品单价、购买数量、小计等。

(5)更新商品库存信息,在商品表中减去对应商品库存数量。

  1. 示例说明

代码示例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. 背景

在网上商城项目中,为了提升用户体验,减少网络请求,我们可以将一些页面数据进行缓存,当用户再次请求该页面时,可以直接从缓存中获取数据,而不用再次从数据库中查询,从而减少了对数据库的访问压力。

  1. 具体步骤

(1)选择需要进行缓存的页面,并确定缓存时间。

(2)在Action中通过cache标签实现数据缓存。

(3)在JSP页面中通过EL表达式从缓存中取出数据。

  1. 示例说明

代码示例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战之订单信息级联入库以及页面缓存问题

基础教程推荐