intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

CHUYÊN ĐỀ JAVA BASIC

Chia sẻ: Huongdanhoctot Huongdanhoctot | Ngày: | Loại File: PDF | Số trang:24

64
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mỗi tầng chịu trách nhiệm riêng – Dữ liệu đầu vào và đầu ra của mỗi tầng nên rõ ràng và dễ sử dụng. – Khi một tầng bị thay đổi thì khả năng ảnh hưởng của nó đến các tầng khác thấp nhất nhất có thể có.

Chủ đề:
Lưu

Nội dung Text: CHUYÊN ĐỀ JAVA BASIC

  1. CHUYÊN ĐỀ JAVA MÔ HÌNH HAI TẦNG ĐƠN GIẢN (2 LAYER) Nguyễn Hoàng Anh Email: nhanh@fit.hcmus.edu.vn ĐH KHTN, 2011
  2. Nội dung trình bày  Hướng tiếp cận phân tầng trong phần mềm  Vai trò của hướng tiếp cận trong phần mềm  Một số hướng tiếp cận phân tầng thông dụng  Mô hình hai tầng đơn giản  Demo Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 2
  3. Hướng tiếp cận phân tầng  Chia phần mềm thành các tầng (Layer)  Khi thiết kế cần lưu ý: – Mỗi tầng chịu trách nhiệm riêng – Dữ liệu đầu vào và đầu ra của mỗi tầng nên rõ ràng và dễ sử dụng. – Khi một tầng bị thay đổi thì khả năng ảnh hưởng của nó đến các tầng khác thấp nhất nhất có thể có. Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 3
  4. Vai trò của hướng tiếp cận phân tầng  Sẵn sàng cho việc mở rộng hệ thống  Tái sử dụng mã nguồn  Dễ bảo trì hệ thống  Dễ dàng phân chia công việc trong nhóm Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 4
  5. Một số mô hình phân tầng  2 Layer / 2 Tier  3 Layer / 3 Tier  N Layer / N Tier Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 5
  6. Mô hình 2 tầng đơn giản Tầng giao diện Đối tượng trao đổi (POJO) Tầng dữ liệu Cơ sở dữ liệu quan hệ Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 6
  7. Đối tượng trao đổi dữ liệu (POJO) đơn giản  Mỗi lớp POJO đại diện cho bảng trong cơ sở dữ liệu  Mỗi lớp POJO gồm những thành phần sau – Các thuộc tính tương ứng với các cột trong bảng – Tối thiểu một phương thức khởi tạo mặc định • Nên viết thêm phương thức khởi tạo đầy đủ tham số – Các phương thức cung cấp và cập nhật thông tin cho từng thuộc tính (get/set) Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 7
  8. Đối tượng trao đổi dữ liệu (POJO) đơn giản XXXTable XXXPOJO YYYTable YYYPOJO ZZZTable ZZZPOJO Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 8
  9. Đối tượng trao đổi dữ liệu (POJO) đơn giản PhongBan NhanVien Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 9
  10. POJO: PhongBan package pojo; 1 import java.io.Serializable; 2 3 public class PhongBan implements Serializable { 4 //Các thuộc tính 5 private int maPhongBan; 6 private String tenPhongBan; 7 //Các phương thức khởi tạo 8 public PhongBanPOJO() { 9 } 10 public PhongBanPOJO(int maPhongBan, String tenPhongBan) { 11 this.maPhongBan = maPhongBan; 12 this.tenPhongBan = tenPhongBan; 13 } 14 // Các phương thức get/set 15 ... 16 } 17 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 10
  11. POJO: NhanVien package pojo; 1 import java.io.Serializable; 2 import java.util.Date; 3 4 public class NhanVien implements Serializable { 5 //Các thuộc tính 6 private String maNhanVien; 7 private String tenNhanVien; 8 private Date ngaySinh; 9 private String diachi; 10 private String email; 11 private String dienThoai; 12 private int maPhongBan; 13 //Các phương thức khởi tạo 14 ... 15 //Các phương thức get/set 16 ... 17 } 18 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 11
  12. Tầng dữ liệu (DAO) đơn giản  Mỗi DAO đại diện cho một bảng bên dưới cơ sở dữ liệu.  Mỗi DAO thông thường chứa các phương thức như – Thêm, xóa, sửa – Rút trích dữ liệu  Mỗi phương thức trong DAO có các tham số đầu vào và các kết quả trả ra là: – POJO, mảng POJO (ArrayList) – Kiểu dữ liệu đơn giản như: boolean,int, String, float, … Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 12
  13. Tầng dữ liệu (DAO) đơn giản POJO XXXDAO YYYDAO ZZZDAO POJO JDBC XXXTable ZZZTable YYYTable Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 13
  14. PhongBanDAO public class PhongBanDAO { 1 public static ArrayList layDanhSachPhongBan() { 2 ArrayList ds = new ArrayList(); 3 try { 4 String sql = "SELECT * FROM PHONGBAN"; 5 MySQLDataAccessHelper helper = new 6 MySQLDataAccessHelper(); 7 helper.open(); 8 ResultSet rs = helper.executeQuery(sql); 9 while (rs.next()) { 10 PhongBan pb = new PhongBan(); 11 pb.setMaPhongBan(rs.getInt("MaPhongBan")); 12 pb.setTenPhongBan(rs.getString("TenPhongBan")); 13 ds.add(pb); 14 } 15 helper.close(); 16 } catch (Exception ex) { 17 System.out.println(ex.getMessage()); 18 } 19 return ds; 20 } 21 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 14
  15. PhongBanDAO public class PhongBanDAO { 1 ... 2 public static ArrayList timKiemPhongBanTheoTen( 3 String tenPhongBan) { 4 ArrayList ds = new ArrayList(); 5 try { 6 String sql = "SELECT * FROM PHONGBAN WHERE TENPHONGBAN LIKE '%" 7 + tenPhongBan + "%'"; 8 MySQLDataAccessHelper helper = new MySQLDataAccessHelper(); 9 helper.open(); 10 ResultSet rs = helper.executeQuery(sql); 11 while (rs.next()) { 12 PhongBan pb = new PhongBan(); 13 pb.setMaPhongBan(rs.getInt("MaPhongBan")); 14 pb.setTenPhongBan(rs.getString("TenPhongBan")); 15 ds.add(pb); 16 } 17 helper.close(); 18 } catch (Exception ex) { 19 System.out.println(ex.getMessage()); 20 }return ds; 21 } 22 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 15
  16. PhongBanDAO public class PhongBanDAO { 1 ... 2 public static boolean themPhongBan(PhongBan pb) { 3 boolean kq = false; 4 String sql = String.format( 5 6 "INSERT INTO PHONGBAN(TenPhongBan) VALUES ('%s');" , 7 pb.getTenPhongBan()); 8 MySQLDataAccessHelper helper = new 9 MySQLDataAccessHelper(); 10 helper.open(); 11 int n = helper.executeUpdate(sql); 12 if (n == 1) { 13 kq = true; 14 } 15 helper.close(); 16 return kq; 17 } 18 ... 19 } 20 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 16
  17. PhongBanDAO public class PhongBanDAO { 1 ... 2 public static boolean xoaPhongBan(int maPhongBan) { 3 boolean kq = false; 4 String sql = String.format("DELETE FROM PHONGBAN WHERE 5 6 MAPHONGBAN=%d", maPhongBan); 7 MySQLDataAccessHelper helper = new 8 MySQLDataAccessHelper(); 9 helper.open(); 10 int n = helper.executeUpdate(sql); 11 if(n==1){ 12 kq=true; 13 } 14 helper.close(); 15 return kq; 16 } 17 ... 18 } 19 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 17
  18. PhongBanDAO public class PhongBanDAO { 1 ... 2 public static boolean capNhatPhongBan(PhongBan pb) { 3 boolean kq = false; 4 String sql = String.format("UPDATE PHONGBAN SET 5 TENPHONGBAN='%s' WHERE MAPHONGBAN=%d", pb.getTenPhongBan(), 6 pb.getMaPhongBan()); 7 MySQLDataAccessHelper helper = new 8 MySQLDataAccessHelper(); 9 helper.open(); 10 int n = helper.executeUpdate(sql); 11 if(n==1){kq=true;} 12 helper.close(); 13 return kq; 14 } 15 } 16 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 18
  19. NhanVienDAO ?  Lấy danh sách nhân viên  Lấy thông tin chi tiết của nhân viên dựa trên mã nhân viên  Kiểm tra xem nhân viên đã tồn tại chưa  Thêm sinh viên  Xóa sinh viên  Cập nhật sinh viên Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 19
  20. Tầng giao diện (GUI)  Giao diện Web  Giao diện Window  Giao diện Mobile Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2