You are on page 1of 24

CHUYN JAVA

M HNH HAI TNG N GIN

(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

Vai tr ca hng tip cn trong phn mm


Mt s hng tip cn phn tng thng dng M hnh hai tng n gin Demo

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Hng tip cn phn tng


Chia phn mm thnh cc tng (Layer)

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.

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Vai tr ca hng tip cn phn tng


Sn sng cho vic m rng h thng

Ti s dng m ngun
D bo tr h thng D dng phn chia cng vic trong nhm

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Mt s m hnh phn tng


2 Layer / 2 Tier

3 Layer / 3 Tier
N Layer / N Tier

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

M hnh 2 tng n gin


Tng giao din
i tng trao i
(POJO)

Tng d liu

C s d liu quan h

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

i tng trao i d liu (POJO) n gin


Mi lp POJO i din cho bng trong c s d liu

Mi lp POJO gm nhng thnh phn sau


Cc thuc tnh tng ng vi cc ct trong bng Ti thiu mt phng thc khi to mc nh Nn vit thm phng thc khi to y tham s Cc phng thc cung cp v cp nht thng tin cho tng thuc tnh (get/set)

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

i tng trao i d liu (POJO) n gin


XXXTable

XXXPOJO

YYYTable

YYYPOJO

ZZZTable

ZZZPOJO

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

i tng trao i d liu (POJO) n gin


PhongBan

NhanVien

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

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

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

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

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Tng d liu (DAO) n gin


Mi DAO i din cho mt bng bn di c s d liu.

Mi DAO thng thng cha cc phng thc nh


Thm, xa, sa Rt trch d liu Mi phng thc trong DAO c cc tham s u vo v cc kt qu tr ra l: POJO, mng POJO (ArrayList<POJO>) Kiu d liu n gin nh: boolean,int, String, float,

12

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Tng d liu (DAO) n gin


POJO

XXXDAO
POJO

YYYDAO

ZZZDAO

JDBC

XXXTable

YYYTable

ZZZTable

13

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
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 { . . .

public static boolean kq String sql "INSERT

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

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 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

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

NhanVienDAO ?
Ly danh sch nhn vin

Ly thng tin chi tit ca nhn vin da trn m nhn vin


Kim tra xem nhn vin tn ti cha Thm sinh vin Xa sinh vin Cp nht sinh vin

19

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Tng giao din (GUI)


Giao din Web

Giao din Window


Giao din Mobile

20

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Tng giao din (GUI)


MN HNH GIAO DIN MN HNH GIAO DIN N MN HNH GIAO DIN
POJO

XXXDAO
POJO

YYYDAO

ZZZDAO

JDBC

XXXTable
21

YYYTable

ZZZTable

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

M HNH HAI TNG N GIN (2 LAYER)

22

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

Ti liu tham kho


Nguyn Hong Anh, Tp bi ging v video mn chuyn Java, 2010

23

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

HI V P

24

Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011

You might also like