Professional Documents
Culture Documents
(2 LAYER)
Nguyn Hong Anh Email: nhanh@fit.hcmus.edu.vn H KHTN, 2011
Ni dung trnh by
Hng tip cn phn tng trong phn mm
Khi thit k cn lu :
Mi tng chu trch nhim ring D liu u vo v u ra ca mi tng nn r rng v d s dng. Khi mt tng b thay i th kh nng nh hng ca n n cc tng khc thp nht nht c th c.
Ti s dng m ngun
D bo tr h thng D dng phn chia cng vic trong nhm
3 Layer / 3 Tier
N Layer / N Tier
Tng d liu
C s d liu quan h
XXXPOJO
YYYTable
YYYPOJO
ZZZTable
ZZZPOJO
NhanVien
POJO: PhongBan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package pojo; import java.io.Serializable; public class PhongBan implements Serializable { //Cc thuc tnh private int maPhongBan; private String tenPhongBan; //Cc phng thc khi to public PhongBanPOJO() { } public PhongBanPOJO(int maPhongBan, String tenPhongBan) { this.maPhongBan = maPhongBan; this.tenPhongBan = tenPhongBan; } // Cc phng thc get/set . . . }
10
POJO: NhanVien
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package pojo; import java.io.Serializable; import java.util.Date; public class NhanVien implements Serializable { //Cc thuc tnh private String maNhanVien; private String tenNhanVien; private Date ngaySinh; private String diachi; private String email; private String dienThoai; private int maPhongBan; //Cc phng thc khi to . . . //Cc phng thc get/set . . . }
11
12
XXXDAO
POJO
YYYDAO
ZZZDAO
JDBC
XXXTable
YYYTable
ZZZTable
13
PhongBanDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
14
public class PhongBanDAO { public static ArrayList<PhongBan> layDanhSachPhongBan() { ArrayList<PhongBan> ds = new ArrayList<PhongBan>(); try { String sql = "SELECT * FROM PHONGBAN"; MySQLDataAccessHelper helper = new MySQLDataAccessHelper(); helper.open(); ResultSet rs = helper.executeQuery(sql); while (rs.next()) { PhongBan pb = new PhongBan(); pb.setMaPhongBan(rs.getInt("MaPhongBan")); pb.setTenPhongBan(rs.getString("TenPhongBan")); ds.add(pb); } helper.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); } return ds; }
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011
PhongBanDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
15
public class PhongBanDAO { . . . public static ArrayList<PhongBan> timKiemPhongBanTheoTen( String tenPhongBan) { ArrayList<PhongBan> ds = new ArrayList<PhongBan>(); try { String sql = "SELECT * FROM PHONGBAN WHERE TENPHONGBAN LIKE '%" + tenPhongBan + "%'"; MySQLDataAccessHelper helper = new MySQLDataAccessHelper(); helper.open(); ResultSet rs = helper.executeQuery(sql); while (rs.next()) { PhongBan pb = new PhongBan(); pb.setMaPhongBan(rs.getInt("MaPhongBan")); pb.setTenPhongBan(rs.getString("TenPhongBan")); ds.add(pb); } helper.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); }return ds; }
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011
PhongBanDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class PhongBanDAO { . . .
boolean themPhongBan(PhongBan pb) { = false; = String.format( INTO PHONGBAN(TenPhongBan) VALUES ('%s');", pb.getTenPhongBan()); MySQLDataAccessHelper helper = new MySQLDataAccessHelper(); helper.open(); int n = helper.executeUpdate(sql); if (n == 1) { kq = true; } helper.close(); return kq;
} . . .
}
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011
16
PhongBanDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class PhongBanDAO { . . .
public static boolean xoaPhongBan(int maPhongBan) { boolean kq = false; String sql = String.format("DELETE FROM PHONGBAN WHERE MAPHONGBAN=%d", maPhongBan); MySQLDataAccessHelper helper = new MySQLDataAccessHelper(); helper.open(); int n = helper.executeUpdate(sql); if(n==1){ kq=true; } helper.close(); return kq; } . . . }
17
PhongBanDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class PhongBanDAO { . . . public static boolean capNhatPhongBan(PhongBan pb) { boolean kq = false; String sql = String.format("UPDATE PHONGBAN SET TENPHONGBAN='%s' WHERE MAPHONGBAN=%d", pb.getTenPhongBan(), pb.getMaPhongBan()); MySQLDataAccessHelper helper = new MySQLDataAccessHelper(); helper.open(); int n = helper.executeUpdate(sql); if(n==1){kq=true;} helper.close(); return kq; } }
18
NhanVienDAO ?
Ly danh sch nhn vin
19
20
XXXDAO
POJO
YYYDAO
ZZZDAO
JDBC
XXXTable
21
YYYTable
ZZZTable
22
23
HI V P
24