zoukankan      html  css  js  c++  java
  • java实现网上购物车的简单功能

    物车的逻辑业务的实现(MyCartBO.java),能够满足用户的添加,删除,修改,清空,查看购物车的信息!

    ConnDB.java(这只是一个得到数据库连接和类)

    01 //连接数据库 

    02 package cn.fqfx.model; 

    03   

    04 import java.sql.*; 

    05   

    06 public class ConnDB  

    07 { 

    08     //定义一个连接 

    09     private Connection ct = null; 

    10       

    11     //得到连接 

    12     public Connection getConn() 

    13     { 

    14         try { 

    15             //加载驱动 

    16             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 

    17             //得到连接 

    18             ct = DriverManager.getConnection 

    19                     ("jdbc:microsoft:sqlserver://localhost:1433;databaseName=whdb2","sa","sa"); 

    20         } catch (Exception e) { 

    21             e.printStackTrace(); 

    22             // TODO: handle exception 

    23         } 

    24         return ct; 

    25     } 

    26 }

    GoodsBean.java(这个文件主要用来保存从数据库的goods表中取得的信息)

    01 //这是一个与Goods表对应的java bean 

    02 //表的信息可以保存在这里面 

    03 package cn.fqfx.model; 

    04   

    05 public class GoodsBean  

    06 { 

    07     //分别与goods表的各个字段相对应 

    08     private int goodsId = 0; 

    09     private String goodsName = ""; 

    10     private String goodsInfo = ""; 

    11     private String goodsPlace = ""; 

    12       

    13       

    14     public int getGoodsId() { 

    15         return goodsId; 

    16     } 

    17     public void setGoodsId(int goodsId) { 

    18         this.goodsId = goodsId; 

    19     } 

    20       

    21       

    22     public String getGoodsName() { 

    23         return goodsName; 

    24     } 

    25     public void setGoodsName(String goodsName) { 

    26         this.goodsName = goodsName; 

    27     } 

    28       

    29       

    30     public String getGoodsInfo() { 

    31         return goodsInfo; 

    32     } 

    33     public void setGoodsInfo(String goodsInfo) { 

    34         this.goodsInfo = goodsInfo; 

    35     } 

    36       

    37       

    38     public String getGoodsPlace() { 

    39         return goodsPlace; 

    40     } 

    41     public void setGoodsPlace(String goodsPlace) { 

    42         this.goodsPlace = goodsPlace; 

    43     } 

    44 }

    MyCartBO.java(这个就是购物车,主要以HashMap实现存放用户想买的商品id,商品数量.然后,通过方法的调用把购物车中的信息返回到界面让用户看)

    001 //这是一个业务对象,相当于一个购物车!! 

    002 //-->使用说明:这个购物车最好是在session中使用,因为一个用户一辆购物车,这样东西才不会一直丢 

    003 package cn.fqfx.model; 

    004   

    005 import java.sql.*; 

    006 import java.util.*; 

    007   

    008 public class MyCartBO  

    009 { 

    010     //定义几个数据库的连接 

    011     private Connection ct  = null; 

    012     private PreparedStatement ps = null; 

    013     private ResultSet rs = null; 

    014       

    015     //定义一个HashMap充当购物车,第一个用来存放goodsId,值就是goods的数量 

    016     HashMap<String, String> hm = new HashMap<String, String>(); 

    017       

    018     //当用户想购买的时候,就加入 购物车里面 

    019     public void addGoods(String goodsId, String goodsNumber) 

    020     { 

    021         hm.put(goodsId, goodsNumber); 

    022     } 

    023       

    024     //当用户不想要东西的时候,就把它删除 

    025     public void delGoods(String goodsId) 

    026     { 

    027         hm.remove(goodsId); 

    028     } 

    029       

    030     //当用户什么也不想要的时候,就清空它 

    031     public void clearGoods() 

    032     { 

    033         hm.clear(); 

    034     } 

    035       

    036     //当用户想更换物品的数量的时候,就更新一下 

    037     public void upGoods(String goodsId, String newNumber) 

    038     { 

    039         //还是用加入物品的方法,因为会自动替换掉它,如果货物名字想换,那说明用户想删除了 

    040         hm.put(goodsId, newNumber); 

    041     } 

    042       

    043     //得到单个物品的数量,要用的话把它转成int型再使用 

    044     public String getGoodsNumberByGoodsId(String goodsId) 

    045     { 

    046         return hm.get(goodsId); 

    047     } 

    048       

    049     //把购物车的东西全部取出来,放入ArrayList里面 

    050     public ArrayList<GoodsBean> getAllGoods() 

    051     { 

    052         //要知道这个ArrayList是用来放GoodsBean,因为GoodsBean与表相对应,所以可以保存物品的信息 

    053         ArrayList<GoodsBean> al = new ArrayList<GoodsBean>(); 

    054         try { 

    055             //得到连接 

    056             ct = new ConnDB().getConn(); 

    057               

    058             //想一个sql语句,主要是取得goodsId,就可以全部取出来给外面的使用 

    059             String sql = "select * from goods where goodsId in ("; 

    060             Iterator<String> it = hm.keySet().iterator(); 

    061             while(it.hasNext()) 

    062             { 

    063                 //把goodsId取出来 

    064                 String goodsId = it.next(); 

    065                 if(it.hasNext()){ 

    066                     sql += goodsId+","; 

    067                 }else{ 

    068                     sql += goodsId+")"; 

    069                 } 

    070             } 

    071               

    072             //创建ps,上面把sql语句组织好 

    073             ps = ct.prepareStatement(sql); 

    074               

    075             //执行 

    076             rs = ps.executeQuery(); 

    077               

    078             //取出来,放在GoodsBean,再把GoodsBean一个个放入ArrayList中,显示的页面就可以调用了 

    079             while(rs.next()) 

    080             { 

    081                 GoodsBean gb = new GoodsBean(); 

    082                 gb.setGoodsId(rs.getInt(1)); 

    083                 gb.setGoodsName(rs.getString(2)); 

    084                 gb.setGoodsInfo(rs.getString(3)); 

    085                 gb.setGoodsPlace(rs.getString(4)); 

    086                   

    087                 //把gb放入al,相当于保存了从数据库中获得的数据 

    088                 al.add(gb); 

    089             } 

    090         } catch (Exception e) { 

    091             e.printStackTrace(); 

    092             // TODO: handle exception 

    093         }finally{ 

    094             this.closeDBResource(); 

    095         } 

    096         return al; 

    097     } 

    098       

    099     //关闭数据库资源 

    100     public void closeDBResource() 

    101     { 

    102         try { 

    103             if(rs != null){ 

    104                 rs.close(); 

    105                 rs = null; 

    106             } 

    107         } catch (Exception e2) { 

    108             e2.printStackTrace(); 

    109             // TODO: handle exception 

    110         } 

    111         try { 

    112             if(ps != null){ 

    113                 ps.close(); 

    114                 ps = null; 

    115             } 

    116         } catch (Exception e2) { 

    117             e2.printStackTrace(); 

    118             // TODO: handle exception 

    119         } 

    120         try { 

    121             if(ct != null){ 

    122                 ct.close(); 

    123                 ct= null; 

    124             } 

    125         } catch (Exception e2) { 

    126             e2.printStackTrace(); 

    127             // TODO: handle exception 

    128         } 

    129     } 

    130 }

    原文链接:http://www.2cto.com/kf/201206/136396.html

  • 相关阅读:
    Web API 强势入门指南
    毫秒必争,前端网页性能最佳实践
    Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap
    Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍
    Windbg Extension NetExt 使用指南 【1】 ---- NetExt 介绍
    WCF : 修复 Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service 问题
    透过WinDBG的视角看String
    Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
    企业IT管理员IE11升级指南【17】—— F12 开发者工具
    WCF : 如何将NetTcpBinding寄宿在IIS7上
  • 原文地址:https://www.cnblogs.com/zhaofei/p/3429526.html
Copyright © 2011-2022 走看看