商城專案整理(三)JDBC增刪改查
阿新 • • 發佈:2022-04-29
商品表的增加,修改,刪除,訂單表的增加,確認,使用者表的檢視,日誌表的增加,檢視
商品表建表語句:
1 create table TEST.GOODS_TABLE 2 ( 3 gid NUMBER not null, 4 gname VARCHAR2(90), 5 gdetails CLOB, 6 gpicture VARCHAR2(100), 7 gprice NUMBER, 8 gleixing NUMBER, 9 gpinpai VARCHAR2(20) 10 ) 11 tablespace USERS 12 pctfree 10 13 initrans 1 14 maxtrans 255 15 storage 16 ( 17 initial 64K 18 next 1M 19 minextents 1 20 maxextents unlimited 21 ); 22 comment on column TEST.GOODS_TABLE.gid 23 is '商品ID'; 24 comment on column TEST.GOODS_TABLE.gname 25 is '商品名稱'; 26 comment on column TEST.GOODS_TABLE.gdetails 27 is '商品詳情'; 28 comment on column TEST.GOODS_TABLE.gpicture 29 is '商品圖片'; 30 comment on column TEST.GOODS_TABLE.gprice 31 is '商品價格'; 32 comment on column TEST.GOODS_TABLE.gleixing 33 is '商品型別'; 34 comment on column TEST.GOODS_TABLE.gpinpai 35 is '商品品牌'; 36 alter table TEST.GOODS_TABLE 37 add constraint PK_GOODSID primary key (GID) 38 using index 39 tablespace USERS 40 pctfree 10 41 initrans 2 42 maxtrans 255 43 storage 44 ( 45 initial 64K 46 next 1M 47 minextents 1 48 maxextents unlimited 49 );
訂單表建表語句:
1 create table TEST.SHOPORDER 2 ( 3 scid VARCHAR2(10), 4 scuser VARCHAR2(20), 5 scgid VARCHAR2(15), 6 scnum NUMBER, 7 scmoney NUMBER, 8 sctime VARCHAR2(20), 9 sczt VARCHAR2(10) 10 ) 11 tablespace SYSTEM 12 pctfree 10 13 pctused 40 14 initrans 1 15 maxtrans 255 16 storage 17 ( 18 initial 64K 19 next 1M 20 minextents 1 21 maxextents unlimited 22 ); 23 comment on column TEST.SHOPORDER.scid 24 is '訂單號'; 25 comment on column TEST.SHOPORDER.scuser 26 is '使用者名稱'; 27 comment on column TEST.SHOPORDER.scgid 28 is '商品ID'; 29 comment on column TEST.SHOPORDER.scnum 30 is '商品數量'; 31 comment on column TEST.SHOPORDER.scmoney 32 is '商品總價'; 33 comment on column TEST.SHOPORDER.sctime 34 is '交易時間'; 35 comment on column TEST.SHOPORDER.sczt 36 is '訂單狀態';
使用者表建表語句:
1 create table TEST.USER_TABLE 2 ( 3 userid NUMBER not null, 4 uname VARCHAR2(20), 5 upassword VARCHAR2(20), 6 unickname VARCHAR2(20), 7 uemail VARCHAR2(50), 8 utime VARCHAR2(30) 9 ) 10 tablespace USERS 11 pctfree 10 12 initrans 1 13 maxtrans 255 14 storage 15 ( 16 initial 64K 17 next 1M 18 minextents 1 19 maxextents unlimited 20 ); 21 comment on column TEST.USER_TABLE.userid 22 is '使用者id'; 23 comment on column TEST.USER_TABLE.uname 24 is '使用者名稱'; 25 comment on column TEST.USER_TABLE.upassword 26 is '使用者密碼'; 27 comment on column TEST.USER_TABLE.unickname 28 is '使用者暱稱'; 29 comment on column TEST.USER_TABLE.uemail 30 is '使用者郵箱'; 31 comment on column TEST.USER_TABLE.utime 32 is '註冊時間';
日誌表建表語句:
1 create table TEST.SHOPLOG
2 (
3 pname VARCHAR2(30),
4 pugroup VARCHAR2(30),
5 puptime VARCHAR2(30),
6 pip VARCHAR2(30),
7 plog VARCHAR2(100)
8 )
9 tablespace SYSTEM
10 pctfree 10
11 pctused 40
12 initrans 1
13 maxtrans 255
14 storage
15 (
16 initial 64K
17 next 1M
18 minextents 1
19 maxextents unlimited
20 );
21 comment on column TEST.SHOPLOG.pname
22 is '使用者名稱';
23 comment on column TEST.SHOPLOG.pugroup
24 is '使用者組';
25 comment on column TEST.SHOPLOG.puptime
26 is '登陸時間';
27 comment on column TEST.SHOPLOG.pip
28 is 'IP';
29 comment on column TEST.SHOPLOG.plog
30 is '操作';
資料庫連結驅動類:
1 package com.hanqi.util;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8
9 /**
10 * 資料庫驅動連線類
11 * @author ZBK
12 */
13 public class DBHelper {
14 /**
15 * 資料庫使用者名稱
16 */
17 public static final String USERNAME = "test";
18 /**
19 * 資料庫密碼
20 */
21 public static final String PASSWORD = "test";
22 /**
23 * 資料庫驅動類
24 */
25 public static final String DRIVER = "oracle.jdbc.OracleDriver";
26 /**
27 * 資料庫地址URL
28 */
29 public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
30
31 /**
32 * 獲取資料庫連線
33 * @return
34 */
35 public static Connection getConnection() {
36 Connection conn = null;
37 try {
38 Class.forName(DRIVER);
39 conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
40 } catch (ClassNotFoundException e) {
41 e.printStackTrace();
42 } catch (SQLException e) {
43 e.printStackTrace();
44 }
45 return conn;
46 }
47
48
49 /**
50 * 釋放資源
51 * @param conn 資料庫連線物件
52 * @param sm Statement物件
53 * @param rs ResultSet結果集物件
54 */
55 public static void destroy(Connection conn, Statement sm, ResultSet rs) {
56 if (conn != null) {
57 try {
58 conn.close();
59 } catch (SQLException e) {
60 e.printStackTrace();
61 }
62 conn = null;
63 }
64 if (sm != null) {
65 try {
66 sm.close();
67 } catch (SQLException e) {
68 e.printStackTrace();
69 }
70 sm = null;
71 }
72 if (rs != null) {
73 try {
74 rs.close();
75 } catch (SQLException e) {
76 e.printStackTrace();
77 }
78 rs = null;
79 }
80 }
81
82 /**
83 * 驗證前臺傳入的引數是否為空
84 * @param args
85 * @return
86 */
87 public static boolean checkParam(String... args) {
88 for (String s : args) {
89 if (s == null || s.trim().length() < 1) {
90 return false;
91 }
92 }
93 return true;
94 }
95 }
資料庫操作方法類:
1 package com.hanqi.dal;
2
3 import java.sql.Connection;
4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.util.ArrayList;
8 import java.util.Date;
9 import java.util.List;
10
11 import com.hanqi.model.Goods;
12 import com.hanqi.model.Log;
13 import com.hanqi.model.Order;
14 import com.hanqi.model.TradingStatusFile;
15 import com.hanqi.model.User;
16 import com.hanqi.util.DBHelper;
17
18 public class MethodDal {
19 private Connection conn;
20 private PreparedStatement ps;
21 private ResultSet rs;
22
23 private static int scnum=1000;
24 //初始化連結
25 public void init(String sql) {
26 conn = DBHelper.getConnection();
27 try {
28 ps = conn.prepareStatement(sql);
29 } catch (SQLException e) {
30 e.printStackTrace();
31 }
32 }
33 //釋放資源
34 public void close(){
35 DBHelper.destroy(conn, ps, rs);
36 }
37 //判斷傳入的引數有沒有空的方法,只要有空的就返回false
38 public boolean checkParam(String... args){//這樣傳引數代表引數個數不確定,傳幾個都可以
39 for(String s : args){
40 if("".equals(s)||s==null){
41 return false;
42 }
43 }
44 return true;
45 }
46 /**
47 * 返回所有商品
48 * @return
49 */
50 public List<Goods> getAllGoods(){
51 String sql = "select * from GOODS_TABLE g";
52 init(sql);
53 List<Goods> list = new ArrayList<Goods>();
54
55 try {
56 rs = ps.executeQuery();
57 while (rs.next()) {
58 Goods good=new Goods(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6),rs.getString(7));
59 list.add(good);
60 }
61 } catch (SQLException e) {
62 e.printStackTrace();
63 }
64 return list;
65 }
66 /**
67 * 增加一條商品資訊
68 * @param g
69 * @return
70 */
71 public int insertGoods(Goods g) {
72 String sql = "insert into GOODS_TABLE values(tablexulie.nextval,?,?,?,?,?,?)";
73
74 init(sql);
75 int a = -1;
76 try {
77 ps.setString(1, g.getGname());
78 ps.setString(2, g.getGdetails());
79 ps.setString(3, g.getGpicture());
80 ps.setInt(4, g.getGprice());
81 ps.setInt(5, g.getGleixing());
82 ps.setString(6, g.getGpinpai());
83 a = ps.executeUpdate();
84 } catch (SQLException e) {
85 e.printStackTrace();
86 }
87 return a;
88 }
89 /**
90 * 刪除商品資訊
91 */
92 public int deleteGoods(int gid) {
93 String sql = "delete from GOODS_TABLE g where g.gid=? ";
94
95 init(sql);
96 int a = -1;
97 try {
98 ps.setInt(1, gid);
99 a = ps.executeUpdate();
100 } catch (SQLException e) {
101 e.printStackTrace();
102 }
103 return a;
104 }
105 //修改商品資訊
106 public int UpdateGood(Goods g) {
107 String sql = "update GOODS_TABLE g set g.gname=?,g.gdetails=?,g.gpicture=?,g.gprice=?,g.gleixing=?,g.gpinpai=? where g.gid=?";
108 init(sql);
109 int a = -1;
110 try {
111 ps.setString(1, g.getGname());
112 ps.setString(2, g.getGdetails());
113 ps.setString(3, g.getGpicture());
114 ps.setInt(4, g.getGprice());
115 ps.setInt(5, g.getGleixing());
116 ps.setString(6, g.getGpinpai());
117 ps.setInt(7, g.getGid());
118 a = ps.executeUpdate();
119 } catch (SQLException e) {
120 e.printStackTrace();
121 }
122 return a;
123 }
124 public int UpdateGoodNP(Goods g) {
125 String sql = "update GOODS_TABLE g set g.gname=?,g.gdetails=?,g.gprice=?,g.gleixing=?,g.gpinpai=? where g.gid=?";
126 init(sql);
127 int a = -1;
128 try {
129 ps.setString(1, g.getGname());
130 ps.setString(2, g.getGdetails());
131 ps.setInt(3, g.getGprice());
132 ps.setInt(4, g.getGleixing());
133 ps.setString(5, g.getGpinpai());
134 ps.setInt(6, g.getGid());
135
136 a = ps.executeUpdate();
137 } catch (SQLException e) {
138 e.printStackTrace();
139 }
140 return a;
141 }
142
143 //獲取數量
144 public int getGoodsSum(String scuser) {
145 String sql = "select s.scnum from SHOPPINGCAR s where s.scuser=?";
146 int sum=0;
147 init(sql);
148
149 try {
150 ps.setString(1, scuser);
151 rs = ps.executeQuery();
152
153 while (rs.next()) {
154 sum+=rs.getInt("scnum");
155 }
156 } catch (SQLException e) {
157 e.printStackTrace();
158 }
159 return sum;
160 }
161
162 public Goods getGoods(String gid) {
163 String sql = "select * from GOODS_TABLE g where g.gid="+gid;
164 init(sql);
165 Goods good=new Goods();
166 try {
167 rs = ps.executeQuery();
168 while (rs.next()) {
169 good=new Goods(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6),rs.getString(7));
170 }
171 } catch (SQLException e) {
172 e.printStackTrace();
173 }
174 return good;
175 }
176 /**
177 * 增加日誌記錄
178 * @param g
179 * @return
180 */
181 public int insertLog(Log l) {
182 String sql = "insert into ShopLog values(?,?,?,?,?)";
183
184 init(sql);
185 int a = -1;
186 try {
187 ps.setString(1, l.getPname());
188 ps.setString(2, l.getPugroup());
189 ps.setString(3, l.getPuptime());
190 ps.setString(4, l.getPip());
191 ps.setString(5, l.getPlog());
192 a = ps.executeUpdate();
193 } catch (SQLException e) {
194 e.printStackTrace();
195 }
196 return a;
197 }
198 /**
199 * 返回所有日誌
200 * @return
201 */
202 public List<Log> getAllLogs(){
203 String sql = "select * from ShopLog s order by s.puptime desc";
204 init(sql);
205 List<Log> list = new ArrayList<Log>();
206
207 try {
208 rs = ps.executeQuery();
209 while (rs.next()) {
210 Log l=new Log();
211 l.setPname(rs.getString(1));
212 l.setPugroup(rs.getString(2));
213 l.setPuptime(rs.getString(3));
214 l.setPip(rs.getString(4));
215 l.setPlog(rs.getString(5));
216
217 list.add(l);
218 }
219 } catch (SQLException e) {
220 e.printStackTrace();
221 }
222 return list;
223 }
224 /**
225 * 返回購物車資料
226 * @return
227 */
228 public List<Order> getAllOrder(String username){
229 String sql = "select t.* from SHOPPINGCAR t where t.scuser=?";
230 init(sql);
231 List<Order> list = new ArrayList<Order>();
232
233 try {
234 ps.setString(1, username);
235 rs = ps.executeQuery();
236 while (rs.next()) {
237 Order l=new Order();
238
239 l.setScid(rs.getString(1));
240 l.setScuser(rs.getString(4));
241 l.setScgid(rs.getString(5));
242 l.setScnum(rs.getInt(3));
243 l.setSctime((new Date()).toLocaleString());
244
245 list.add(l);
246 }
247 } catch (SQLException e) {
248 e.printStackTrace();
249 }
250 return list;
251 }
252 /**
253 * 刪除購物車已經提交的資訊
254 */
255 public int deleteSCar(String username) {
256 String sql = "delete from SHOPPINGCAR g where g.scuser=? ";
257
258 init(sql);
259 int a = -1;
260 try {
261 ps.setString(1, username);
262 a = ps.executeUpdate();
263 } catch (SQLException e) {
264 e.printStackTrace();
265 }
266 return a;
267 }
268 /**
269 * 增加訂單記錄
270 * @param g
271 * @return
272 */
273 public int insertOrder(Order l) {
274 String sql = "insert into SHOPORDER values(?,?,?,?,?,?,?)";
275
276 init(sql);
277 int a = -1;
278 try {
279 ps.setString(1, l.getScid());
280 ps.setString(2, l.getScuser());
281 ps.setString(3, l.getScgid());
282 ps.setInt(4, l.getScnum());
283 ps.setInt(5, l.getScmoney());
284 ps.setString(6, l.getSctime());
285 ps.setString(7, l.getSczt());
286 a = ps.executeUpdate();
287 } catch (SQLException e) {
288 e.printStackTrace();
289 }
290 return a;
291 }
292 /**
293 * 返回未確認訂單
294 * @return
295 */
296 public List<Order> getAllOrder(){
297 String sql = "select t.* from SHOPORDER t where t.sczt='待確認' order by t.sctime desc";
298 init(sql);
299 List<Order> list = new ArrayList<Order>();
300
301 try {
302 rs = ps.executeQuery();
303 while (rs.next()) {
304 Order l=new Order();
305 l.setScid(rs.getString(1));
306 l.setScuser(rs.getString(2));
307 l.setScgid(rs.getString(3));
308 l.setScnum(rs.getInt(4));
309 l.setScmoney(rs.getInt(5));
310 l.setSctime(rs.getString(6));
311 l.setSczt(rs.getString(7));
312 list.add(l);
313 }
314 } catch (SQLException e) {
315 e.printStackTrace();
316 }
317 return list;
318 }
319 /**
320 * 返回確認訂單
321 * @return
322 */
323 public List<Order> getAllOrder1(){
324 String sql = "select t.* from SHOPORDER t where t.sczt='已確認' order by t.sctime desc";
325 init(sql);
326 List<Order> list = new ArrayList<Order>();
327
328 try {
329 rs = ps.executeQuery();
330 while (rs.next()) {
331 Order l=new Order();
332 l.setScid(rs.getString(1));
333 l.setScuser(rs.getString(2));
334 l.setScgid(rs.getString(3));
335 l.setScnum(rs.getInt(4));
336 l.setScmoney(rs.getInt(5));
337 l.setSctime(rs.getString(6));
338 l.setSczt(rs.getString(7));
339 list.add(l);
340 }
341 } catch (SQLException e) {
342 e.printStackTrace();
343 }
344 return list;
345 }
346 /**
347 * 修改訂單狀態
348 * @return
349 */
350 public void UpdateOrder(String sctime){
351 String sql = "update SHOPORDER s set s.sczt='已確認' where s.sctime=?";
352 init(sql);
353 try {
354 ps.setString(1, sctime);
355 ps.executeQuery();
356
357 } catch (SQLException e) {
358 e.printStackTrace();
359 }
360 }
361 /**
362 * 返回使用者資訊
363 * @return
364 */
365 public List<User> getAllUsers(){
366 String sql = "select t.*, t.rowid from USER_TABLE t order by t.utime desc";
367 init(sql);
368 List<User> list = new ArrayList<User>();
369
370 try {
371 rs = ps.executeQuery();
372 while (rs.next()) {
373 User l=new User();
374
375 l.setUserid(rs.getInt(1));
376 l.setUname(rs.getString(2));
377 l.setUpassword(rs.getString(3));
378 l.setUnickname(rs.getString(4));
379 l.setUemail(rs.getString(5));
380 l.setUtime(rs.getString(6));
381 list.add(l);
382 }
383 } catch (SQLException e) {
384 e.printStackTrace();
385 }
386 return list;
387 }
388
389 }