您的位置:首页 > 编程语言 > Java开发

java实现网上购物车的简单功能

2013-11-18 15:08 696 查看
物车的逻辑业务的实现(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: