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

  • 相关阅读:
    React组件的Refs
    Typechecking With PropTypes
    酷炫Jquery收集
    JSTL函数标签库 fn标签学习
    Struts标签 比较时间大小
    Struts2 拦截器 配置IFrame页面跳转
    实体Bean, Entity 注解设置
    Uploadify 参数说明
    Uploadify jsp使用示例
    百度umeditor
  • 原文地址:https://www.cnblogs.com/zhaofei/p/3429526.html
Copyright © 2011-2022 走看看