购物车的源程序 1、重新计费部分还没有做好,大家自己动手吧!2、下一版本将用session做。//shop_cart.jsp<%@ page contentType="text/html;charset=gb2312"%><%@ page session="true" %><%@ page language="java" import="java.sql.*" %><%String product_type;String action;int product_id;int curpage;//商品类型if (request.getParameter("product_type")==null){product_type="all";}else{product_type=request.getParameter("product_type");} //页数和商品类型参数,可以在“继续购物”时返回到上次购物的页面if (request.getParameter("curpage")==null){curpage=1;}else{curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));} //动作if (request.getParameter("action")==null){action="view";}else{action=request.getParameter("action");} //商品编号if (request.getParameter("product_id")==null){product_id=0;}else{product_id=java.lang.Integer.parseInt( request.getParameter("product_id"));}int bbb;bbb=1;Integer num = new Integer(bbb);//商店编号session.putValue("shop_id",num);//顾客usernamesession.putValue("guest_name","asp2001");String guest_name=(String)session.getValue("guest_name");Integer shop_id=(Integer)session.getValue("shop_id");java.lang.String sql; java.sql.ResultSet rs;if (action.compareTo("add")==0) {sql="select cart_quantity from shop_cart where " + "cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + "" and cart_product_id=" + product_id ;rs = bka.executeQuery(sql);if (rs.next()){int cart_quantity;cart_quantity=java.lang.Integer.parseInt( rs.getString("cart_quantity"))+1;sql="update shop_cart set cart_quantity=" + cart_quantity + " where cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + "" and cart_product_id=" + product_id ;rs = bka.executeQuery(sql);}else{sql="insert into shop_cart (cart_shop_id,cart_guest_id,"+"cart_product_id,cart_quantity) values ("" + shop_id + "","" + guest_name + "","" + product_id + "",1)";rs = bka.executeQuery(sql);}}if (action.compareTo("clear")==0) {sql="delete from shop_cart where cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + """;rs = bka.executeQuery(sql);} if (action.compareTo("delete")==0) { sql="delete from shop_cart where cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + "" and cart_product_id=" + product_id ;rs = bka.executeQuery(sql);}%>

购物车

<%sql="select shop_product.product_id,shop_product.product_name,shop_product.product_price,shop_product.product_discount,shop_cart.cart_quantity,shop_product.product_first from shop_cart,shop_product where shop_cart.cart_shop_id=" + shop_id + " and shop_cart.cart_guest_id="" + guest_name + "" and shop_cart.cart_product_id=shop_product.product_id";rs = bka.executeQuery(sql);int total;int total_first;total=0;total_first=0;String product_name;int product_price;int product_discount;int product_first;int cart_quantity;if (rs.next()){while (rs.next()) {product_id=java.lang.Integer.parseInt(rs.getString(1));product_name=rs.getString(2);product_price=java.lang.Integer.parseInt(rs.getString(3));product_discount=java.lang.Integer.parseInt(rs.getString(4));cart_quantity=java.lang.Integer.parseInt(rs.getString(5));product_first=java.lang.Integer.parseInt(rs.getString(6));%> <%total=total+product_discount*cart_quantity;total_first=total_first+product_discount*cart_quantity*product_first/100;}%>
商品名称市场价优惠价数量小计定金比例定金小计删除
<%=product_name%><%=product_price%><%=product_discount%>" size="3" value="<%=cart_quantity%>"><%=product_discount*cart_quantity%><%=product_first + "%"%><%=product_first*product_discount*cart_quantity/100.0%>

总计

<%=total%>

定金总计

<%=total_first%>

结余

<%=total-total_first%>
<%}else{%>

购物车为空!

<%}%>数据库操作部分程序用到两个表:1 shop_cart表cart_id int 购物车编号 自动编号cart_shop_id nvarchar 商店编号cart_product_id nvarchar 商品编号cart_quantity int 商品数量临时存放购物车数据 2 shop_product表product_id int 商品编号 自动编号shop_id nvarchar 商店编号product_name nvarchar 商品名称product_bb nvarchar 商品介绍product_price int 市场价product_discount int 优惠价product_img img 图片product_status nvarchar 状态product_first int 定金比例product_type nvanchar 商品类型存放商品资料 使用bka.java制成的javabean:bka.class可以提供对数据库的操作。另外,需在控制面板的系统DSN中注册bka.dsn,从而可使JSP通过JDBC-ODBC来调用sql数据库。在页面中调用javabean,基本上可采用以下方式: <%@ page language="java" import="java.sql.*" %><%String sql="select * from xxx";ResultSet rs = RegisterBean.executeQuery(sql); if(rs.next()) { rs.close();RegisterBean.closeStmt();session.putValue("register_message","duplicate name found!");}%>注意应在使用后将rs关闭。以下是bka.java的源程序。注意在使用前需用javac加以编译成为class文件即javabean.--shop/bka.java--package shop;import java.sql.*; public class bka {String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";String sConnStr = "jdbc:odbc:bka";Connection conn = null;ResultSet rs = null; public bka() {try {Class.forName(sDBDriver); }catch(java.lang.ClassNotFoundException e) {System.err.println("bka(): " + e.getMessage());}}public ResultSet executeQuery(String sql) {rs = null;try {conn = DriverManager.getConnection(sConnStr,"xxx","yyy"); Statement stmt = conn.createStatement();rs = stmt.executeQuery(sql);} catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage());}return rs;}} 1、重新计费部分还没有做好,大家自己动手吧!2、下一版本将用session做。//shop_cart.jsp<%@ page contentType="text/html;charset=gb2312"%><%@ page session="true" %><%@ page language="java" import="java.sql.*" %><%String product_type;String action;int product_id;int curpage;//商品类型if (request.getParameter("product_type")==null){product_type="all";}else{product_type=request.getParameter("product_type");} //页数和商品类型参数,可以在“继续购物”时返回到上次购物的页面if (request.getParameter("curpage")==null){curpage=1;}else{curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));} //动作if (request.getParameter("action")==null){action="view";}else{action=request.getParameter("action");} //商品编号if (request.getParameter("product_id")==null){product_id=0;}else{product_id=java.lang.Integer.parseInt( request.getParameter("product_id"));}int bbb;bbb=1;Integer num = new Integer(bbb);//商店编号session.putValue("shop_id",num);//顾客usernamesession.putValue("guest_name","asp2001");String guest_name=(String)session.getValue("guest_name");Integer shop_id=(Integer)session.getValue("shop_id");java.lang.String sql; java.sql.ResultSet rs;if (action.compareTo("add")==0) {sql="select cart_quantity from shop_cart where " + "cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + "" and cart_product_id=" + product_id ;rs = bka.executeQuery(sql);if (rs.next()){int cart_quantity;cart_quantity=java.lang.Integer.parseInt( rs.getString("cart_quantity"))+1;sql="update shop_cart set cart_quantity=" + cart_quantity + " where cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + "" and cart_product_id=" + product_id ;rs = bka.executeQuery(sql);}else{sql="insert into shop_cart (cart_shop_id,cart_guest_id,"+"cart_product_id,cart_quantity) values ("" + shop_id + "","" + guest_name + "","" + product_id + "",1)";rs = bka.executeQuery(sql);}}if (action.compareTo("clear")==0) {sql="delete from shop_cart where cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + """;rs = bka.executeQuery(sql);} if (action.compareTo("delete")==0) { sql="delete from shop_cart where cart_shop_id=" + shop_id + " and cart_guest_id="" + guest_name + "" and cart_product_id=" + product_id ;rs = bka.executeQuery(sql);}%>

购物车

<%sql="select shop_product.product_id,shop_product.product_name,shop_product.product_price,shop_product.product_discount,shop_cart.cart_quantity,shop_product.product_first from shop_cart,shop_product where shop_cart.cart_shop_id=" + shop_id + " and shop_cart.cart_guest_id="" + guest_name + "" and shop_cart.cart_product_id=shop_product.product_id";rs = bka.executeQuery(sql);int total;int total_first;total=0;total_first=0;String product_name;int product_price;int product_discount;int product_first;int cart_quantity;if (rs.next()){while (rs.next()) {product_id=java.lang.Integer.parseInt(rs.getString(1));product_name=rs.getString(2);product_price=java.lang.Integer.parseInt(rs.getString(3));product_discount=java.lang.Integer.parseInt(rs.getString(4));cart_quantity=java.lang.Integer.parseInt(rs.getString(5));product_first=java.lang.Integer.parseInt(rs.getString(6));%> <%total=total+product_discount*cart_quantity;total_first=total_first+product_discount*cart_quantity*product_first/100;}%>
商品名称市场价优惠价数量小计定金比例定金小计删除
<%=product_name%><%=product_price%><%=product_discount%>" size="3" value="<%=cart_quantity%>"><%=product_discount*cart_quantity%><%=product_first + "%"%><%=product_first*product_discount*cart_quantity/100.0%>

总计

<%=total%>

定金总计

<%=total_first%>

结余

<%=total-total_first%>
<%}else{%>

购物车为空!

<%}%>数据库操作部分程序用到两个表:1 shop_cart表cart_id int 购物车编号 自动编号cart_shop_id nvarchar 商店编号cart_product_id nvarchar 商品编号cart_quantity int 商品数量临时存放购物车数据 2 shop_product表product_id int 商品编号 自动编号shop_id nvarchar 商店编号product_name nvarchar 商品名称product_bb nvarchar 商品介绍product_price int 市场价product_discount int 优惠价product_img img 图片product_status nvarchar 状态product_first int 定金比例product_type nvanchar 商品类型存放商品资料 使用bka.java制成的javabean:bka.class可以提供对数据库的操作。另外,需在控制面板的系统DSN中注册bka.dsn,从而可使JSP通过JDBC-ODBC来调用sql数据库。在页面中调用javabean,基本上可采用以下方式: <%@ page language="java" import="java.sql.*" %><%String sql="select * from xxx";ResultSet rs = RegisterBean.executeQuery(sql); if(rs.next()) { rs.close();RegisterBean.closeStmt();session.putValue("register_message","duplicate name found!");}%>注意应在使用后将rs关闭。以下是bka.java的源程序。注意在使用前需用javac加以编译成为class文件即javabean.--shop/bka.java--package shop;import java.sql.*; public class bka {String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";String sConnStr = "jdbc:odbc:bka";Connection conn = null;ResultSet rs = null; public bka() {try {Class.forName(sDBDriver); }catch(java.lang.ClassNotFoundException e) {System.err.println("bka(): " + e.getMessage());}}public ResultSet executeQuery(String sql) {rs = null;try {conn = DriverManager.getConnection(sConnStr,"xxx","yyy"); Statement stmt = conn.createStatement();rs = stmt.executeQuery(sql);} catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage());}return rs;}}