该篇文章主要是将我们剩下的功能完成,完善我们购物车项目,再看该文章之前,可以先去看下购物车项目(一)该篇文章。
目录
一.增加订单和订单详情数据
首先在我们的购物车界面中有一个按钮订单结算,点击该按钮时我们的购物车数据清空,然后新增一条订单数据,点单结算时购物车有几条数据,在我们的订单详情表中,对应着该订单的商品数量就有几条。
1.购物车页面代码如下:
<%@ 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 http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css">
<script src="bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
<script src="bootstrap-3.3.7-dist\js\bootstrap.js"></script>
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>我的购物车</title>
</head>
<body>
<div class="container">
<h1>
${user.name}<small>这是购物车</small>
</h1>
<h1>
<a href="index.do" class="btn btn-default">继续购买</a>
<a href="order.do" class="btn btn-default">订单结算</a>
<a href="selectOtder.do" class="btn btn-default">查看订单</a>
</h1>
<table class="table table-bordered table-striped">
<tr>
<td>商品编号</td>
<td>商品名字</td>
<td>商品单价</td>
<td>商品数量</td>
<td>商品总价</td>
<td>商品操作</td>
</tr>
<c:forEach items="${car}" var="c">
<tr>
<td>${c.goods.id}</td>
<td>${c.goods.name}</td>
<td>${c.goods.price}</td>
<td><a href="updCar.do?id=${c.goods.id}&type=1" class="btn btn-default">+</a> ${c.count} <a href="updCar.do?id=${c.goods.id}&type=-1" class="btn btn-default">-</a></td>
<td>${c.total}</td>
<td><a href="delCar.do?id=${c.goods.id}" class="btn btn-default">商品删除</a></td>
</tr>
</c:forEach>
</table>
</div>
<h1>总价:${sum}</h1>
</body></html>
2.pojo包下订单实体类代码:
package com.yjx.pojo;
/**
* 订单实体类
* @author zjjt
*
*/
public class Order {
private Integer id;
private Integer userId;
private Integer total;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
public Order() {
// TODO Auto-generated constructor stub
}
public Order(Integer id, Integer userId, Integer total) {
super();
this.id = id;
this.userId = userId;
this.total = total;
}
@Override
public String toString() {
return "Order [id=" + id + ", userId=" + userId + ", total=" + total + "]";
}
}
3.订单的数据访问层接口代码如下: IOrderDao
具备查询最大id,插入订单,根据用户id查询订单
package com.yjx.dao;
import java.util.List;
import com.yjx.pojo.Order;
/**
* 订单数据访问层接口
* @author zjjt
*
*/
public interface IOrderDao {
//查询最大id
int selectId();
//增加数据
int add(Order o);
//根据用户id查询id
List<Order> list(int userId);
}
4.订单的数据访问层代码如下: OrderDaoImpl
package com.yjx.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.yjx.dao.IOrderDao;
import c