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

Bài giảng Chuyên đề Java: Chương 4 - Nguyễn Hoàng Anh

Chia sẻ: Nhân Sinh ảo ảnh | Ngày: | Loại File: PDF | Số trang:23

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

Bài giảng "Chuyên đề Java - Chương 4: Hibernate mapping One - To - One" cung cấp cho người học các kiến thức: One to one, Lazy, Fetch, Cascade. Đây là một tài liệu hữu ích dành cho các các bạn sinh viên Công nghệ Thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chuyên đề Java: Chương 4 - Nguyễn Hoàng Anh

  1. CHUYÊN ĐỀ JAVA HIBERNATE MAPPING ONE-TO-ONE Nguyễn Hoàng Anh Email: nhanh@fit.hcmus.edu.vn hoanganhis@gmail.com ĐH KHTN, 2011 Upload by Cafeitvn.com
  2. Nội dung trình bày  One to one  Lazy  Fetch  Cascade 2 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  3. Quan hệ một-một (one-to-one) 1 1 A B A B PK IDA PK IDB ... ... FK1 + UNIQUE IDA ... 3 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  4. Quan hệ một-một (one-to-one)  Trong ứng dụng quản lý sinh viên – Mỗi sinh viên có một giấy chứng minh nhân dân – Mỗi chứng minh nhân dân thuộc về một sinh viên  Mối quan hệ giữa sinh viên và chứng minh nhân dân là mối quan hệ một-một (one-to-one) 4 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  5. Quan hệ một-một (one-to-one) 1 1 Sinhvien ChungMinhNhanDan SinhVien UNIQUE KEY ChungMinhNhanDan 5 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  6. Quan hệ một-một (one-to-one) SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String - chungMinhNhanDan:ChungMinhNhanDan - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String - danToc :String - dauVetRiengVaDiHinh :String - ngayCap :Date - noiCap :String - sinhVien :SinhVien UNIQUE KEY 6 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  7. SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String SinhVien POJO - chungMinhNhanDan:ChungMinhNhanDan - hoTen - ngaySinh :Date :String - diaChiThuongTru : String - nguyenQuan :String 1 package pojo; - danToc :String 2 public class SinhVien implements java.io.Serializable { - dauVetRiengVaDiHinh :String - ngayCap :Date 3 - noiCap :String 4 private String maSinhVien; - sinhVien :SinhVien 5 private ChungMinhNhanDan chungMinhNhanDan; 6 7 public SinhVien() { 8 } 9 10 public SinhVien(String maSinhVien) { 11 this.maSinhVien = maSinhVien; 12 } 13 public SinhVien(String maSinhVien, 14 ChungMinhNhanDan chungMinhNhanDan) { 15 this.maSinhVien = maSinhVien; 16 this.chungMinhNhanDan = chungMinhNhanDan; 17 } 18 //Các phương thức get/set 19 } 7 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  8. SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String CMND POJO - chungMinhNhanDan:ChungMinhNhanDan - hoTen - ngaySinh :Date :String - diaChiThuongTru : String - nguyenQuan :String 1 package pojo; - danToc :String 2 public class ChungMinhNhanDan - dauVetRiengVaDiHinh :String - ngayCap :Date 3 implements java.io.Serializable { - noiCap :String 4 private String soCmnd; - sinhVien :SinhVien 5 private String hoTen; 6 private Date ngaySinh; 7 private String diaChiThuongTru; 8 private String nguyenQuan; 9 private String danToc; 10 private String dauVetRiengVaDiHinh; 11 private Date ngayCap; 12 private String noiCap; 13 private SinhVien sinhVien; 14 15 //Các phương thức khởi tạo 16 //Các phương thức get/set 17 } 8 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  9. Quan hệ một-một (one-to-one)  Mapping mối quan hệ một-một giống như mapping trong mối quan hệ nhiều-một – Nhưng thêm thuộc tính unique="true“  Có thể khai báo sử dụng thuộc tính – Lazy – Fetch – cascade 9 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  10. SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String SinhVien.hbm.xml - chungMinhNhanDan:ChungMinhNhanDan - hoTen - ngaySinh :Date :String - diaChiThuongTru : String - nguyenQuan :String 1 - danToc :String 2 - noiCap :String 4 - sinhVien :SinhVien 5 6 7 8 11 12 13 14 15 UNIQUE KEY 10 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  11. SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String CMND.hbm.xml - chungMinhNhanDan:ChungMinhNhanDan - hoTen - ngaySinh :Date :String - diaChiThuongTru : String - nguyenQuan :String 1 - danToc :String 2 - sinhVien :SinhVien 5 6 7 8 9 . . . 10 13 14 15 UNIQUE KEY 11 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  12. SinhVienDAO 1 public class SinhVienDAO { 2 public static List layDanhSachSinhVien() { 3 List ds = null; 4 Session session = HibernateUtil.getSessionFactory() 5 .openSession(); 6 try { 7 String hql = "select sv from SinhVien sv"; 8 Query query = session.createQuery(hql); 9 ds = query.list(); 10 } catch (HibernateException ex) { 11 System.err.println(ex); 12 } finally { 13 session.close(); 14 } 15 return ds; 16 } 17 . . . 18 } 12 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  13. SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String SinhVien.hbm.xml - chungMinhNhanDan:ChungMinhNhanDan - hoTen - ngaySinh :Date :String - diaChiThuongTru : String - nguyenQuan :String 1 - danToc :String 2 - noiCap :String 4 - sinhVien :SinhVien 5 6 7 8 11 12 13 14 15 UNIQUE KEY 13 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  14. Main – lấy danh sách sinh viên 1 public class Main { 2 3 public static void main(String[] args) { 4 5 List ds=SinhVienDAO.layDanhSachSinhVien(); 6 for(int i=0; i
  15. SinhVienDAO 1 public class SinhVienDAO { 2 . . . 3 public static SinhVien layThongTinSinhVien( 4 String maSinhVien) { 5 SinhVien sv = null; 6 Session session = HibernateUtil.getSessionFactory(). 7 openSession(); 8 try { 9 sv =(SinhVien)session.get(SinhVien.class, maSinhVien); 10 } catch (HibernateException ex) { 11 System.err.println(ex); 12 } finally { 13 session.close(); 14 } 15 return sv; 16 } 17 . . . 18 } 15 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  16. SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String SinhVien.hbm.xml - chungMinhNhanDan:ChungMinhNhanDan - hoTen - ngaySinh :Date :String - diaChiThuongTru : String - nguyenQuan :String 1 - danToc :String 2 - noiCap :String 4 - sinhVien :SinhVien 5 6 7 8 11 12 13 14 15 UNIQUE KEY 16 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  17. Main – lấy thông tin sinh viên 1 public class Main { 2 3 public static void main(String[] args) { 4 5 SinhVien v=null; 6 sv=SinhVienDAO.layThongTinSinhVien("0712222"); 7 . . . 8 } 9 } 17 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  18. SinhVienDAO 1 public static boolean themSinhVien(SinhVien sv) { 2 Session session = HibernateUtil.getSessionFactory().openSession(); 3 if (SinhVienDAO.layThongTinSinhVien(sv.getMaSinhVien()) != null) { 4 return false; 5 } 6 boolean kq = true; 7 Transaction transaction = null; 8 try { 9 transaction = session.beginTransaction(); 10 session.save(sv); 11 transaction.commit(); 12 } catch (HibernateException ex) { 13 transaction.rollback(); 14 System.err.println(ex); 15 kq = false; 16 } finally { 17 session.close(); 18 } 19 return kq; 20 } 18 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  19. SinhVien ChungMinhNhanDan 1 1 - maSinhVien:String - soCMND :String SinhVien.hbm.xml - chungMinhNhanDan:ChungMinhNhanDan - hoTen - ngaySinh :Date :String - diaChiThuongTru : String - nguyenQuan :String 1 - danToc :String 2 - noiCap :String 4 - sinhVien :SinhVien 5 6 7 8 11 12 13 14 15 UNIQUE KEY 19 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
  20. Main – thêm sinh viên cùng cmnd 1 public class Main { 2 public static void main(String[] args) { 3 SinhVien sv=new SinhVien(); sv.setMaSinhVien("0312555"); 4 ChungMinhNhanDan cmnd=new ChungMinhNhanDan(); 5 cmnd.setSoCmnd("444555666"); 6 cmnd.setHoTen("T? T?n Thêm"); 7 cmnd.setDiaChiThuongTru("140 Quốc Lộ 53 Càng Long-Trà Vinh"); 8 cmnd.setNguyenQuan("V?nh Long"); 9 Calendar c=Calendar.getInstance(); 10 c.set(1984, 6, 22); 11 cmnd.setNgaySinh(c.getTime()); 12 c.set(2001, 4, 18); 13 cmnd.setNgayCap(c.getTime()); 14 cmnd.setDanToc("Kinh"); 15 cmnd.setDauVetRiengVaDiHinh("Sẹo 3cm trên mắt trái"); 16 cmnd.setNoiCap("Trà Vinh"); 16 sv.setChungMinhNhanDan(cmnd); 18 boolean kq=SinhVienDAO.themSinhVien(sv); 19 } 20 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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