当前位置: 首页>编程语言>正文

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 hm = new HashMap();
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 getAllGoods()
051     {
052         //要知道这个ArrayList是用来放GoodsBean,因为GoodsBean与表相对应,所以可以保存物品的信息
053         ArrayList al = new ArrayList();
054         try {
055             //得到连接
056             ct = new ConnDB().getConn();
057
058             //想一个sql语句,主要是取得goodsId,就可以全部取出来给外面的使用
059             String sql = "select * from goods where goodsId in (";
060             Iterator 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 }

https://www.xamrdz.com/lan/5zd1962541.html

相关文章: