⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cart.java

📁 这是一个网上卖衣服的网站项目
💻 JAVA
字号:

/**************************************************************
 *
 *购物车,每个购物车的实例对应数据库中Order表中的一条纪录
 *该购物车中每个同类产品对应数据库中OrderDetail表中的一条纪录
 *
 **************************************************************/

package mylib;


public class Cart {
	
	//为客户生成一辆购物车
	public Cart(int custId) {
		this.customerId= custId;
		details = new java.util.Hashtable();
	}

	
	//更新购物车
	public void updateCart(String isdn,int qty) {
		if(isdn!=null) {
			//检查加入的商品是否存在或有库存
			ConnectionDB condb = new ConnectionDB();
			java.sql.ResultSet rs = condb.executeQuery("Select Stock from tb_Product where ISDN=\'"+isdn+"\'");
			try {
				if(rs.next()) {
					int stock = rs.getInt("Stock");
					if(stock>=qty) {
						if(qty!=0) {	
							details.put(isdn,new Integer(qty));
							this.checked = true;
						}
						//删除购物车中的商品
						else {
							details.remove(isdn);
							this.checked = true;
						}	
					}
					else {
						this.checked = false;
						System.out.println("您选择的产品:"+isdn+"库存不够,现在库存数是:"+stock+"个。");
					}
				}
			}
			catch(Exception ex) {
				this.checked = false;
				ex.printStackTrace();
			}
			
			condb.close();
		}
		else {
			this.checked = false;
			System.out.println("错误,没有选中任何商品!");
		}
	}
	
	//获取购物车属性
	public int getCustomerId() {
		return customerId;
	}
	public int getOrderId() {
		return orderId;
	}
	public java.sql.Date getDate() {
		return date;
	}
	public String getPayType() {
		return payType;
	}
	public String getCarry() {
		return carry;
	}
	//获取购物车中所有商品的ISDN
	public String[] getProductsISDN() {
		String[] products = new String[details.size()];
		java.util.Enumeration e = details.keys();
		int i = 0;
		while(e.hasMoreElements()) {
			products[i++] = (String)e.nextElement();
		}
		return products;
	}
	//查询购物车中商品的数量
	public int getQuantity(String isdn) {
		Integer i = (Integer)details.get(isdn);
		return i.intValue();
	}
	
	
	//设置购物车属性
	public void setPayType(String payType) {
		this.payType = payType;
	}
	public void setCarry(String carry) {
		this.carry = carry;
	}
	
	
	//埋单
	public void payTheBill() {
		if(this.checked) {
			if(createOrder())//插入一条订单纪录
				System.out.println("成功插入订单纪录");
			else
				System.out.println("插入订单纪录失败");
				
			if(createDetails())//插入订单所有明细
				System.out.println("成功插入订单明细纪录");
			else
				System.out.println("插入订单明细纪录失败");
		}
		else {
			System.out.println("遇到错误,不能埋单。");
		}
	}

/******************************************
 *数据库操作
 *******************************************/
	//生成一张订单
	private boolean createOrder() {
		ConnectionDB condb = new ConnectionDB();
		//执行数据库中存储过程,返回一条新插入Order纪录的ResultSet
		String sql = "execute CreateOrder ";
		java.sql.ResultSet rs = condb.executeQuery(sql+this.customerId);
		boolean successCreate = false;
		try {
			if(rs.next()) {
				orderId = rs.getInt("Order_ID");
				date = rs.getDate("Order_Date");
				//rs.getInt("Customer_ID");
				payType = rs.getString("PayType");
				carry = rs.getString("Carry");
				successCreate = true;
			}
			else
			{
				successCreate = false;
			}
		}
		catch(Exception ex) {
			ex.printStackTrace();
		}
		
		condb.close();
		return successCreate;
	}
	
	//生成订单明细
	private boolean createDetails() {
		boolean successCreate = false;
		ConnectionDB condb = new ConnectionDB();
		String sql = "Insert into tb_OrderDetails values(?,?,?)";
		
		String [] products = getProductsISDN();
		int[] qty = new int[products.length];
		int rows = 0;
		for(int i=0;i<products.length;i++) {
			Integer ii = (Integer)details.get(products[i]);
			Object[] parameters = {orderId,products[i],ii};
			rows = condb.executeUpdate(sql,parameters);
		}
		if(rows!=0)
			successCreate = true;
		else
			successCreate = false;
		
		condb.close();
		return successCreate;
	}

	//购物车属性
	private int orderId = 0;					//订单ID
	private int customerId= 0;					//会员ID
	private java.sql.Date date = null;			//订单生成日期
	private String payType = "邮局汇款";		//汇款方式
	private String carry = "普通";				//订单紧急度
	private boolean checked = false;			//如果checked为false,则不能执行数据库操作,应该检查updateCart()
	
	private java.util.Hashtable details = null;	//明细







	
/**********************************************
 *测试main()
 **********************************************/	
	public static void main(String[] args) {
		Cart c = new Cart(3);
		c.updateCart("B002",1);
		c.payTheBill();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -