使用jsp和mysql实现简易购物车系统

3星 · 超过75%的资源 需积分: 13 96 下载量 162 浏览量 更新于2024-09-10 4 收藏 209KB DOCX 举报
"本资源是一个基于JSP和MySQL的简单购物车实例,旨在演示如何结合这两项技术实现在线购物的功能。项目包含两个数据库表:cart(购物车)和shop(商品),并提供了index.jsp页面的源代码,展示了如何从数据库查询商品信息并显示在网页上。" 在该实例中,开发者首先通过JSP(Java Server Pages)来创建动态网页,利用Java脚本语言处理数据。JSP是一种服务器端的技术,它允许开发者在HTML页面中嵌入Java代码,从而实现动态内容的生成。 数据库方面,使用的是MySQL,一个广泛使用的开源关系型数据库管理系统。在这个实例中,有两个关键的表: 1. **cart表**:这个表可能存储了用户的购物车信息,包括用户ID、商品ID、数量等字段,用于记录用户选择购买的商品。 2. **shop表**:这个表代表商店的商品信息,可能包含字段如商品编号(SP_NO)、商品名称(SP_NAME)、价格(PRICE)、商品摘要(INFO)以及商品图片链接(SP_PIC)等。 在`index.jsp`文件中,可以看到以下关键操作: - 使用`Class.forName()`加载MySQL的JDBC驱动,`newInstance()`创建驱动实例,这是连接数据库的前提。 - 建立数据库连接,通过`DriverManager.getConnection()`方法,指定URL(包括数据库名、用户名和密码)来连接到MySQL服务器。 - 创建`Statement`对象,用于执行SQL查询。在这里,查询所有商品的信息(`select * from shop`)。 - `ResultSet`对象`rs`用于存储查询结果,然后通过循环遍历结果集,获取每条记录的商品信息,并在HTML表格中展示出来,包括商品缩图、商品摘要和购买链接。 这个实例对于初学者来说是一个很好的起点,可以帮助他们理解如何将JSP与MySQL集成,进行基本的数据查询和网页展示。同时,这个简单的购物车模型可以作为进一步开发更复杂电子商务系统的基石,例如添加用户登录、购物车操作、订单处理等功能。不过,需要注意的是,实际生产环境中,为了安全性和性能,通常会使用PreparedStatement代替Statement,以及连接池来管理数据库连接。此外,代码中的字符编码设置(`characterEncoding=gb2312`)可能需要根据实际需求调整为UTF-8,以支持更多的字符集。
2010-01-07 上传
package shoppingcart.biz; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * 购物车 */ public class ShoppingCart { private Map cartMap = null; //保存Product的Map /** * 购物车构造函数 */ public ShoppingCart(){ cartMap = new HashMap(); } /** * 取得存放产品的cartMap */ public Map getCartMap(){ return this.cartMap; } /** * 向购物车中添加产品 */ public boolean addProduct(String productId){ if(existProduct(productId)){ // 产品已存在则增加数量 Product product = cartMap.get(productId); product.setProductNum(product.getProductNum() + 1); return true; } else{ // 否则新加入该产品 Product product = new Product(productId); if(product.getProductId()==null){ return false; // 数据库中无该产品 }else{ cartMap.put(productId, product); return false; } } } /** * 检查购物车里是否已存在该产品 */ public boolean existProduct(String productId){ Iterator hmkey = cartMap.keySet().iterator(); while(hmkey.hasNext()){ String pid = hmkey.next(); if(pid.equals(productId)){ return true; } } return false; } /** * 从购物车中移除指定产品 */ public void delProduct(String productId){ cartMap.remove(productId); } /** * 获取购物车产品数量 */ public int getProductNum(){ int productNum = 0; Iterator hmEntry = cartMap.values().iterator(); while(hmEntry.hasNext()){ productNum += hmEntry.next().getProductNum(); } return productNum; } /** * 统计购物车商品总价 */ public double getTotalprice(){ double totalPrice = 0.0; Iterator hmkey = cartMap.keySet().iterator(); Product product = null; while(hmkey.hasNext()){ product = cartMap.get(hmkey.next()); totalPrice += product.getProductPirce() * product.getProductNum(); } return totalPrice; } /** * 清空购物车 */ public void clearCart(){ cartMap.clear(); } }