border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468"> |
|
align="center"> border="1" cellpadding="2" cellspacing="0" width="100%"
bordercolorlight="#FFB468" bordercolordark="#FFFFFF" bgcolor="#FFB468"> | |
align="center"> border="1" cellpadding="2" cellspacing="0" width="100%"
bordercolorlight="#FFB468" bordercolordark="#FFFFFF" bgcolor="#FFB468"> | |
align="center"> border="1" cellpadding="2" cellspacing="0" width="100%"
bordercolorlight="#FFB468" bordercolordark="#FFFFFF" bgcolor="#FFB468"> | |
border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight="#FFB468" bordercolordark="#FFFFFF" bgcolor="#FFB468"> | |
bordercolorlight="#FFB468" bordercolordark="#FFFFFF" height="40"> 商品名稱 | 市價 | 優惠價 | 數量 | 小計 | 定金比 | 定金小計 | 刪除 | <% sql="select shop_product.product_id,shop_product.product_name,shop_product.product_price,
。 ct_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)); %>
<%=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+product_discount*cart_quantity; total_first=total_first+product_discount*cart_quantity*product_first/100; } %>
| <%=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; } }
|