📄 sealdealservlet.java
字号:
package networkshopsystem;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.sql.*;import java.util.*;/** * Title: 网络商店的销售系统 * Description: 教学示范 * Copyright: Copyright (c) 2003 * Company: 北京师范大学计算机系 * @author 孙一林 * @version 1.0 */public class sealdealServlet extends HttpServlet { static final private String CONTENT_TYPE = "text/html; charset=GBK"; Connection connection = null; Vector vector=new Vector(); // 定义Vector向量获得存储顾客购买的商品 public void init() throws ServletException { } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(); vector = (Vector)session.getAttribute("vector"); // 获得vector // 输出sealDeal页面 out.println("<html>"); out.println("<head><title>sealDeal页面</title></head>"); out.println("<body bgcolor=#FFFFFF text=#000000>"); Vector buyproduct=new Vector(); buyproduct=vector; String number=(String)session.getAttribute("number"); // 获得数据库中存货数目 int num=Integer.parseInt(number) ; for(int i=0;i<buyproduct.size();i++) { int p_id =Integer.parseInt(getValueAt(i,0).toString()); // 获得购买产品ID int buy_number=Integer.parseInt(getValueAt(i,4).toString() ); // 获得购买产品的数目 String cus_name = request.getParameter("cus_name"); // 获得用户名 String cus_addr = request.getParameter("cus_addr"); // 获得用户地址 sealDeal(p_id,buy_number,cus_name, cus_addr); // 调用处理数据库函数 } out.println("交易成功!<br>"); out.println("<p align=center><a href=selectproductservlet>继续交易</a></p>"); out.println("</body></html>"); } public void sealDeal(int id,int buynumber, String name, String addr) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:shop"; connection = DriverManager.getConnection(url); String sql = "select * from product_table where product_id = " + id; Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rs = statement.executeQuery(sql); rs.first(); int p_quantity = rs.getInt("product_quantity"); // 获得数据库中编号为id的产品数量 p_quantity=p_quantity-buynumber; statement.close(); // 更新表product_table中顾客购买后的产品数量product_quantity sql = "update product_table set product_quantity = " + p_quantity + " where product_id = " + id; statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); statement.executeUpdate(sql); statement.close(); sql = "select * from sell_table where product_id = " + id; statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=statement.executeQuery(sql); rs.first(); int product_price = rs.getInt("product_price"); int sell_number=rs.getInt("sell_number") ; // 取得原数据库表sell_table中的sell_number statement.close(); // 更新表sell_table中的sell_number及sell_profit sell_number=sell_number+buynumber; sql = "update sell_table set sell_number= " + sell_number+",sell_profit="+sell_number*product_price + " where product_id = " + id; statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); statement.executeUpdate(sql); statement.close(); // 向cart_table中插入数据 sql = "insert into cart_table (product_id,buy_number,customer_name,customer_address) values (" + id +","+ buynumber+", '" + name + "', '" + addr + "')"; statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); statement.executeUpdate(sql); } catch(Exception ex) { // 异常处理 ex.printStackTrace(); } } public Object getValueAt(int row, int column) { if(!vector.isEmpty()) { return ((Vector) vector.elementAt(row)).elementAt(column); } else { return null; } } public void destroy() { }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -