用JSP和数据库做的购物车的源程序:(欢迎大家指点!)

js|程序|购物车|数据|数据库

下面是我用JSP和数据库做的购物车的源程序:

注意:
1、重新计费部分还没有做好,大家自己动手吧!
2、下一版本将用session做。

//shop_cart.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page session="true" %>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="bka" scope="page" class="shop.bka" />
<%

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);
//顾客username
session.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);
}
%>
<div align="center"><center>

<table border="0" cellpadding="0" cellspacing="0" width="610"

height="2">
  <tr>
    <td><form method="POST"

action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp

age=<%=curpage%>">
      <table border="0" cellpadding="0" cellspacing="0" width="610"

height="2">
        <tr>
          <td width="122" height="7"><div align="center"><center><table

border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight="#FFB468"

bordercolordark="#FFFFFF" bgcolor="#FFB468">
            <tr>
              <td width="100%"><div

align="center"><center><p>购物车</td>
            </tr>
          </table>
          </center></div></td>
          <td width="122" height="7" style="border: medium"

align="center"><div align="center"><center><table
          border="1" cellpadding="2" cellspacing="0" width="100%"

bordercolorlight="#FFB468"
          bordercolordark="#FFFFFF" bgcolor="#FFB468">
            <tr>
              <td width="100%"><div align="center"><center><p><a

href="shop_list.jsp?shop_id=<%=shop_id%>&product_type=<%=product_type%>

&curpage=<%=curpage%>">继续购物</a></td>
            </tr>
          </table>
          </center></div></td>
          <td width="122" height="7" style="border: medium"

align="center"><div align="center"><center><table
          border="1" cellpadding="2" cellspacing="0" width="100%"

bordercolorlight="#FFB468"
          bordercolordark="#FFFFFF" bgcolor="#FFB468">
            <tr>
              <td width="100%"><div align="center"><center><p><a

href="javascript: document.forms[0].submit()">重新计费</a></td>
            </tr>
          </table>
          </center></div></td>
          <td width="122" height="7" style="border: medium"

align="center"><div align="center"><center><table
          border="1" cellpadding="2" cellspacing="0" width="100%"

bordercolorlight="#FFB468"
          bordercolordark="#FFFFFF" bgcolor="#FFB468">
            <tr>
              <td width="100%"><div align="center"><center><p><a href="shop_cart.jsp?action=clear&product_type=<%=product_type%>&curpage=<%=curpage%>">清空购物车</a></td>
            </tr>
          </table>
          </center></div></td>
          <td width="122" height="7" style="border: medium" align="center"><div align="center"><center><table
          border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight="#FFB468"
          bordercolordark="#FFFFFF" bgcolor="#FFB468">
            <tr>
              <td width="100%"><div align="center"><center><p><a href="shop_order.asp">确认购买</a></td>
            </tr>
          </table>
          </center></div></td>
        </tr>
        <tr align="center">
          <td width="610" height="1" colspan="5"><div align="center"><center>
<table border="1" cellpadding="2" cellspacing="0" width="100%" bgcolor="#FDFEE2" bordercolorlight="#FFB468" bordercolordark="#FFFFFF" height="40">
            <tr>
              <td width="20%" height="8" align="left">商品名称</td>
              <td width="10%" height="8" align="left">市场价</td>
              <td width="10%" height="8" align="left">优惠价</td>
              <td width="10%" height="8" align="left">数量</td>
          <td width="14%" height="8" align="left">小计</td>
          <td width="12%" height="8" align="left">定金比例</td>
          <td width="17%" height="8" align="left">定金小计</td>
              <td width="17%" height="8" align="left">删除</td>
            </tr>
<%
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));
%>

<tr>
<td width="10%" height="1" align="left"><%=product_name%></td>
<td width="10%" height="1" align="left"><%=product_price%></td>
<td width="10%" height="1" align="left"><%=product_discount%></td>
<td width="10%" height="1" align="left"><input type="text" name="<%= "t" + product_id %>" size="3" value="<%=cart_quantity%>"></td>
<td width="14%" height="1" align="left"><%=product_discount*cart_quantity%></td>
<td width="12%" height="1" align="left"><%=product_first + "%"%></td>
<td width="17%" height="1" align="left"><%=product_first*product_discount*cart_quantity/100.0%></td>
<td width="17%" height="1"><div align="center"><center><p><a href="shop_cart.jsp?action=delete&product_id=<%=product_id%>">delete</a></td>
</tr>

<%
total=total+product_discount*cart_quantity;
total_first=total_first+product_discount*cart_quantity*product_first/100;
}
%>

<tr align="center">
<td width="72%" colspan="6" height="16"><div align="right"><p>总计</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total%></td>
</tr>
<tr align="center">
<td width="72%" colspan="6" height="16"><div align="right"><p>定金总计</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total_first%></td>
</tr>
<tr align="center">
<td width="72%" colspan="6" height="16"><div align="right"><p>结余</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total-total_first%></td>
</tr>
          </table>
          </center></div>

<%
}else{
%>
<p align="center">购物车为空!</p>
<%
}
%>

数据库操作部分

程序用到两个表:
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.*" %>
<jsp:useBean id="RegisterBean" scope="page" class="shop.bka" />
<%
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;
}
}

时间: 2024-08-16 04:57:18

用JSP和数据库做的购物车的源程序:(欢迎大家指点!)的相关文章

eclipse-谁知道用JSP展现数据库里面数据导入导出功能怎样写的代码?

问题描述 谁知道用JSP展现数据库里面数据导入导出功能怎样写的代码? 做数据导出老导不出数据,我想知道是不是数据库方法错误,谁知道用JSP展现数据库里面数据导入导出功能怎样写的代码? 解决方案 导入导出EXCEL数据http://yangbobestone.iteye.com/blog/1123458

已有jsp程序,怎样修改图片?jsp页面数据库内容显示不出来怎么解决?具体内容见描述

问题描述 已有jsp程序,怎样修改图片?jsp页面数据库内容显示不出来怎么解决?具体内容见描述 已有jsp程序,发布之后理应是但是我发布出来却是求大神指导这该如何解决?还有,已有的jsp程序,想要功能不变但是把图片换掉,使它看起来像是一个新的网站,该怎么换图片?急求大神!!感激不尽~ 解决方案 上面一张图片看不到. 改图片就是改img标签里的src部分.请参考:http://www.w3school.com.cn/tags/tag_img.asp 解决方案二: 估计连接数据库出了问题,你看看to

jsp 数据库 弹框-jsp中数据库的数据传到页面上

问题描述 jsp中数据库的数据传到页面上 我写一个请假系统,首先是根据学号id登录,进入首页.首页中有个"修改信息"的按钮,点击此按钮之后,会弹出一个div框,显示学生的基本信息,并且点击"修改"按钮可以修改. 现在,我不知道如何把数据库里面每个学生对应的信息,显示到弹出框上?请大家指点迷津,不胜感激!急求!!! 解决方案 这个嘛,前一个月我也遇到类似问题, 主要是就是才学.说说我的理解 1.首先,弹出框没做过,页面跳转你可以直接跳转到对应的页面上,比如_$(&qu

代码-jsp对数据库进行增加和删除?

问题描述 jsp对数据库进行增加和删除? 请问谁有jsp对数据库进行增加和删除的小列子,或者代码.我想做的是对历史记录的删除操作,但不知道如何写jsp里面的代码,新手上路,请多多关照. 解决方案 首先你要告诉我你用什么框架,什么数据库.我资源分享里有例子,不知道是不是你想要的,是SSM的,你可以看一下 解决方案二: 没有啊啊啊啊啊啊啊 我也想要 解决方案三: uruolhilk..;hvrekllhkbjnh

表单-关于WEB 开发中jsp访问数据库的问题

问题描述 关于WEB 开发中jsp访问数据库的问题 就如题目所说,我现在在做一个网页,现在写了几个bean ,能够实现读取网页表单中的数据 ,并且把他们写到数据库,下面要做的是,从数据库中读取符合条件的数据,并显示在网页中 符合条件的数据也是由网页输入的.问一下有那个大神会做吗,急!!! 解决方案 会啊,这种问题,只要是程序员都会做吧.你可以放心大胆雇佣一个程序员帮你了. 解决方案二: 你说的是输入输出是在同一个页面是吧 就是说一个页面进去之后表单中就有数据,并且他们可以修改 方法很多,举一个:

登录 增删改查-初学者求一个JSP对数据库进行登录并增删改查的代码

问题描述 初学者求一个JSP对数据库进行登录并增删改查的代码 A 注:(发送失败的短信的存储表格) create table A ( list_id VARCHAR2(40) not null, task_id VARCHAR2(40), content VARCHAR2(2000), presend_dt DATE, final_dt DATE, status NUMBER default 0, caller VARCHAR2(40), chargenum VARCHAR2(40), call

jsp从数据库获取数据填充下拉框实现二级联动菜单的方法_JSP编程

本文实例讲述了jsp从数据库获取数据填充下拉框实现二级联动菜单的方法.分享给大家供大家参考,具体如下: 项目告一段落,现在将遇到的比较实用的东西记录下来,写了多遍了,谨记于此,以备查看! 1.首先在数据库中获取第一个下拉框的数据: <s:select listKey="tsFrom" id="t_tsfrom" cssClass="required" listValue="tsFrom" cssStyle="w

关于jsp链接数据库按条件查询功能实现,有哪位大神说说吗?

问题描述 关于jsp链接数据库按条件查询功能实现,有哪位大神说说吗? jsp链接数据库实现查询功能,通过选择查询条件,将数据库中符合条件的数据显示在表格中 解决方案 这个很好做啊!连接了数据库直接根据条件(id或别的字段)操作数据库,实现查询功能 解决方案二: 大神链接

求救:JSP和数据库是怎么样交互的?(急)

问题描述 星期一要面试,自己这一块还不太清楚,希望各位前辈告诉我JSP和数据库之间到底怎么样交互的?小妹,在此谢过了 解决方案 解决方案二:JSP和数据库之间可以用框架进行交接~~~具体点就是Hibernate框架进行交接~~解决方案三:谢谢,你是说主要就是MVC这个框架之间就是它页面和数据库交互的方式吗?解决方案四:是的其次MVC是设计模式并非框架而框架是Struts,Hibernate,Spring等等Struts框架针是定义了通用的Controller(控制器),通过配置文件隔离了Mode