Professional Documents
Culture Documents
b02 LTM Java Ket Noi Co So Du Lieu
b02 LTM Java Ket Noi Co So Du Lieu
Java kt ni c s d liu
Ging vin: TS. Nguyn Mnh Hng
Hc vin Cng ngh Bu chnh Vin thng (PTIT)
Ni dung
Kt ni DB bng JDBC
Dng PreparedStatement
PreparedStatement updateSales = null; String updateString = "update products " + "set SALES = ? where ID = ?"; try { updateSales = conn.prepareStatement(updateString); updateSales.setInt(1, value); updateSales.setInt(2, productId); updateSales.executeUpdate(); } catch (SQLException e ) { throw e; }
10
11
Ly d liu ra
13
14
Lm vic vi Transaction
16
17
18
Bi ton
Mt khch sn (id, tn, a ch, s sao, m t) c nhiu phng (id, hng phng, m t) Mi phng c th c t bi nhiu khch hng (id, tn, m t) ti nhiu thi im khc nhau Mi khch hng c th t nhiu phng ti nhiu thi im khc nhau Mi khch hng ch 1 phng ti 1 thi im nht nh, xc nh 1 gi xc nh Khch hng ch c th t phng nu phng cn trng trong sut thi gian khch hng mun t Khi tr phng, nhn vin in phiu thanh ton bao gm tn khch sn, tn khch hng, s phng, hng phng, ngy n, ngy i v tng s tin thanh ton
20
Yu cu
Thit k cc bng CSDL cho bi ton nh ngha cc lp thc th cho bi ton nh ngha phng thc thm mt phng khch sn vo CSDL nh ngha phng thc tm kim danh sch phng trng trong mt khong thi gian xc nh nh ngha phng thc cho php 1 khch hng t mt phng trong mt thi gian xc nh nh ngha phng thc tnh doanh thu ca khch sn trong mt thi gian xc nh nh ngha phng thc lit k danh sch cc phng c t l khch hng t cao nht trong nm
21
Trc ht cn c 3 bng:
tblHotel: id, name, level, description tblRoom: id, type, description tblCustomer: id, name, username, password, role, description Nhn xt:
1 khch sn c nhiu phng, 1 phng ch trong 1 khch sn quan h gia bng tblHotel v tblRoom l 1-n 1 khch hng t nhiu phng, 1 phng cng c nhiu ngi t quan h gia tblRoom v tblCustomer l n-n, phi chun ha
To thm mt bng t ch chi tit tblBooking: idRoom, idCustomer, startDate, endDate, price, description quan h gia tblRoom v tblBooking l 1-n (mt phng c nhiu ln t), v gia tblCustomer v tblBooking cng l 1-n (mt ngi c nhiu ln t)
22
23
Cc lp thc th (1)
Trc ht cn c 4 lp:
Hotel: id, name, level, description, listRoom Room: id, type, description Customer: id, name, username, password, role, description Booking: id, room, customer, startDate, endDate, price, description Nhn xt:
1 khch sn c nhiu phng thuc tnh listRoom c dng mt mng cc i tng kiu Room 1 phiu t phng c 1 phng thuc tnh room c dng mt i tng kiu Room 1 phiu t phng c 1 khch hng thuc tnh customer c dng mt i tng kiu Customer
24
Cc lp thc th (2)
25
26
27
28
29
t phng (1)
String createProcedure = "create procedure BOOK_ROOM(IN roomId int, IN customerId int, IN sDate Date, IN eDate Date, IN price float, IN description varchar(50))"+ "begin " + "INSERT INTO tblBooking(roomId, customerId, startDate," + "endDate, price, description) VALUES(roomId, customerId, " + "sDate, eDate, price, description); " + "end"; try { Statement stmt = conn.createStatement(); stmt.executeUpdate(createProcedure); } catch (SQLException e ) { throw e; } Lu : phn code ny vit trong phng thc ring ca lp control, ch cn to 1 ln, c th chy nhiu ln
30
t phng (2)
public void bookRoom(Booking b)throws SQLException{ try { CallableStatement cs = conn.prepareCall("{call BOOK_ROOM(?,?,?,?,?,?)}"); cs.setInt(1, b.getRoom().getId()); cs.setInt(2, b.getCustomer().getId()); cs.setInt(3, b.getStartDate()); cs.setInt(4, b.getEndDate()); cs.setInt(5, b.getPrice()); cs.setInt(6, b.getDescription()); cs.executeUpdate(); } catch (SQLException e ) { throw e; } } Lu : y l phng thc ca lp control
31
32
33
34
35
Bi tp
Ci t tng giao din cho bi ton Tch hp cc phng thc nh ngha vo c ng dng hon chnh
36
Questions?