生成订单

本文详细介绍了在线购物系统中生成订单的完整流程,包括创建订单表和订单项表的数据库结构,以及在Java后端如何处理生成订单的业务逻辑。通过订单Servlet实现用户提交订单,涉及用户验证、数据封装、事务处理和调用OrderService来持久化订单数据。同时展示了相关JSP页面展示订单详情。
摘要由CSDN通过智能技术生成

生成订单

需求:
    在购物车页面上,有i一个提交订单,点击的时候,将用户购物车中的商品添加到数据库中.
实体:
    用户
    订单
    订单项(中间表)
    商品
创建表:
    订单表
        CREATE TABLE `orders` (
          `oid` varchar(32) NOT NULL,
          `ordertime` datetime DEFAULT NULL,
          `total` double DEFAULT NULL,
          `state` int(11) DEFAULT NULL,
          `address` varchar(30) DEFAULT NULL,
          `name` varchar(20) DEFAULT NULL,
          `telephone` varchar(20) DEFAULT NULL,
          `uid` varchar(32) DEFAULT NULL,
          PRIMARY KEY (`oid`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    订单项表
        CREATE TABLE `orderitem` (
          `itemid` varchar(32) NOT NULL,
          `count` int(11) DEFAULT NULL,
          `subtotal` double DEFAULT NULL,
          `pid` varchar(32) DEFAULT NULL,
          `oid` varchar(32) DEFAULT NULL,
          PRIMARY KEY (`itemid`),
          KEY `fk_0001` (`pid`),
          KEY `fk_0002` (`oid`),
          CONSTRAINT `fk_0001` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`),
          CONSTRAINT `fk_0002` FOREIGN KEY (`oid`) REFERENCES `orders` (`oid`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建bean

    需要在order实体提供 user对象和list<OrderItem>
    需要在orderItem实体中提供 product对象和order对象

步骤分析:
    点击生成订单:
        /store/order?method=add
    创建OrderServlet
        add方法中:
            1.判断用户是否登录,
            2.封装数据 Order
                oid            随机
                total        购物车中的总金额
                ordertime    当前时间
                
                User        session中当前用户
                
                订单项集合List<OrderItem>
                    创建OrderItem,然后添加到list中
                    orderItem从那里来????????/
                        购物车中CartItem
                
                name(先不管)
                address(先不管)
                telephone(先不管)
            3.调用orderservice 生成订单
                开启事务
                先往订单表中插入一条数据
                往订单项表中插入n条数据

                提交事务

 

---------------------------------------------------------------------------------------------------------------------

order_info.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!doctype html>
<html>

    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>会员登录</title>
        <link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css" type="text/css" />
        <script src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js" type="text/javascript"></script>
        <script src="${pageContext.request.contextPath}/js/bootstrap.min.js" type="text/javascript"></script>
        <!-- 引入自定义css文件 style.css -->
        <link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" type="text/css" />
        <style>
            body {
                margin-top: 20px;
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值