Bài giảng Chuyên đề Java: Chương 5 - Nguyễn Hoàng Anh
lượt xem 11
download
Bài giảng "Chuyên đề Java - Chương 5: Hibernate mapping One - To - Many" trình bày các nội dung: One to many, Lazy Initialization, 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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Chuyên đề Java: Chương 5 - Nguyễn Hoàng Anh
- CHUYÊN ĐỀ JAVA HIBERNATE MAPPING ONE-TO-MANY Nguyễn Hoàng Anh Email: nhanh@fit.hcmus.edu.vn ĐH KHTN, 2011 Upload by Cafeitvn.com
- Nội dung trình bày One to many Lazy Initialization Fetch Cascade 2 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- Mối quan hệ một-nhiều (one-to-many) 1 * A B A B PK IDA PK IDB ... ... FK1 IDA ... 3 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- Mối quan hệ một nhiều (one-to-many) Trong ứng dụng BookOnline – Mỗi đầu sách thuộc về một danh mục – Mỗi danh mục có thể có nhiều đầu sách Mối quan hệ hướng từ đầu sách đến danh mục được gọi là mối quan hệ nhiều – một (many-to-one) Mối quan hệ hướng từ danh mục sang sách được gọi làm mối quan hệ một-nhiều(one-to-many) Nếu chỉ có mối quan hệ hướng từ sách đến danh mục hoặc ngược lại gọi là mối quan hệ một chiều (unidirectional association) Nếu mối quan hệ hướng cả từ sách đến danh mục và ngược lại gọi là mối quan hệ hai chiều (bidirectional association) 4 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- BookOnline DanhMuc Sach 1 * - maDanhMuc : String - maSach :String - tenDanhMuc :String - tenSach :String - sachs : Set - tacGia :String - giaBan :double - soLuong :int - hinhAnh :String - danhMuc :DanhMuc 5 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMuc Sach 1 * DanhMuc POJO - SET - maDanhMuc : String - tenDanhMuc :String - maSach - tenSach :String :String - sachs : Set - tacGia :String - giaBan :double 1 import java.util.HashSet; - soLuong :int - hinhAnh :String 2 import java.util.Set; - danhMuc :DanhMuc 3 4 public class DanhMuc implements java.io.Serializable { 5 6 private String maDanhMuc; 7 private String tenDanhMuc; 8 private Set sachs = new HashSet(0); 9 10 //Các phương thức khởi tạo 11 . . . 12 //Getter & Setter 13 . . . 6 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMuc Sach DanhMuc.hbm.xml - Set - maDanhMuc : String 1 * - maSach :String - tenDanhMuc :String - tenSach :String - sachs : Set - tacGia :String - giaBan :double 1 - soLuong :int 2 - hinhAnh :String - danhMuc :DanhMuc 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 7 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMuc Sach Sach POJO - maDanhMuc : String 1 * - maSach :String - tenDanhMuc :String - tenSach :String - sachs : Set - tacGia :String - giaBan :double 1 package pojo; - soLuong :int 2 public class Sach implements java.io.Serializable {-- hinhAnh :String danhMuc :DanhMuc 3 private String maSach; 4 private DanhMuc danhMuc; 5 6 private String tenSach; 7 private String tacGia; 8 private double giaBan; 9 private int soLuong; 10 private String hinhAnh; 11 12 13 //Constructors 14 15 //Getters & Setters 16 8 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- Sach.hbm.xml 1 2 3 4 5 6 7 . . . 8 10 11 12 13 DanhMuc Sach 1 * - maDanhMuc : String - maSach :String - tenDanhMuc :String - tenSach :String - sachs : Set - tacGia :String - giaBan :double - soLuong :int - hinhAnh :String 9 Upload by Cafeitvn.com - danhMuc :DanhMuc Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục 1 public class DanhMucDAO { 2 public static DanhMuc layThongTinDanhmuc(String maDanhmuc) { 3 DanhMuc dm = null; 4 Session session = HibernateUtil.getSessionFactory() 5 .openSession(); 6 try { 7 dm = (DanhMuc)session.get(DanhMuc.class, maDanhmuc); 8 } catch (HibernateException ex) { 9 System.err.println(ex); 10 } finally { 11 session.close(); 12 } 13 return dm; 14 } 15 } 10 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục 1 public class Main { 2 public static void main(String[] args) { 3 DanhMuc dm=DanhMucDAO.layThongTinDanhmuc("DM001"); 4 System.out.println("Mã danh mục: "+dm.getMaDanhMuc()); 5 System.out.println("Tên danh mục: "+dm.getTenDanhMuc()); 6 Iterator sachs=dm.getSachs().iterator(); 7 while(sachs.hasNext()){ 8 Sach s=sachs.next(); 9 System.out.println("Mã sách:"+ s.getMaSach()); 10 System.out.println("Tên sách: "+s.getTenSach()); 11 System.out.println("Tác giả: "+s.getTacGia()); 12 System.out.println("Giá bán: "+s.getGiaBan()); 13 System.out.println("Số lượng: "+s.getSoLuong()); 14 System.out.println("Hình ảnh: "+s.getHinhAnh()); 15 } 16 } 17 } 11 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục Lazy = true 12 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- Lazy Initialization Trong Hibernate, Lazy Initialization giúp – Tránh các câu truy vấn cơ sở dữ liệu không cần thiết – Gia tăng hiệu suất thực thi – Lazy mặc định có giá trị là true 13 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMuc Sach DanhMuc.hbm.xml - Set - maDanhMuc : String 1 * - maSach :String - tenDanhMuc :String - tenSach :String - sachs : Set - tacGia :String - giaBan :double 1 - soLuong :int 2 - hinhAnh :String - danhMuc :DanhMuc 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 14 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục 1 public class Main { 2 public static void main(String[] args) { 3 DanhMuc dm=DanhMucDAO.layThongTinDanhmuc("DM001"); 4 System.out.println("Mã danh mục: "+dm.getMaDanhMuc()); 5 System.out.println("Tên danh mục: "+dm.getTenDanhMuc()); 6 Iterator sachs=dm.getSachs().iterator(); 7 while(sachs.hasNext()){ 8 Sach s=sachs.next(); 9 System.out.println("Mã sách:"+ s.getMaSach()); 10 System.out.println("Tên sách: "+s.getTenSach()); 11 System.out.println("Tác giả: "+s.getTacGia()); 12 System.out.println("Giá bán: "+s.getGiaBan()); 13 System.out.println("Số lượng: "+s.getSoLuong()); 14 System.out.println("Hình ảnh: "+s.getHinhAnh()); 15 } 16 } 17 } 15 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục Lazy = false 16 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMuc Sach DanhMuc.hbm.xml - Set - maDanhMuc : String 1 * - maSach :String - tenDanhMuc :String - tenSach :String - sachs : Set - tacGia :String - giaBan :double 1 - soLuong :int 2 - hinhAnh :String - danhMuc :DanhMuc 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 17 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục 1 public class DanhMucDAO { 2 public static DanhMuc layThongTinDanhMuc(String maDanhMuc) { 3 DanhMuc dm = null; 4 Session session = HibernateUtil.getSessionFactory() 5 .openSession(); 6 try { 7 String hql=" select dm "; 8 hql+= " from DanhMuc dm left join fetch dm.sachs"; 9 hql+= " where dm.maDanhMuc=:maDanhMuc"; 10 Query query=session.createQuery(hql); 11 query.setString("maDanhMuc", maDanhMuc); 12 dm=(DanhMuc)query.uniqueResult(); 13 } catch (HibernateException ex) { 14 System.err.println(ex); 15 } finally { 16 session.close(); 17 } 18 return dm; 19 } 18 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục 1 public class Main { 2 public static void main(String[] args) { 3 DanhMuc dm=DanhMucDAO.layThongTinDanhmuc("DM001"); 4 System.out.println("Mã danh mục: "+dm.getMaDanhMuc()); 5 System.out.println("Tên danh mục: "+dm.getTenDanhMuc()); 6 Iterator sachs=dm.getSachs().iterator(); 7 while(sachs.hasNext()){ 8 Sach s=sachs.next(); 9 System.out.println("Mã sách:"+ s.getMaSach()); 10 System.out.println("Tên sách: "+s.getTenSach()); 11 System.out.println("Tác giả: "+s.getTacGia()); 12 System.out.println("Giá bán: "+s.getGiaBan()); 13 System.out.println("Số lượng: "+s.getSoLuong()); 14 System.out.println("Hình ảnh: "+s.getHinhAnh()); 15 } 16 } 17 } 19 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
- DanhMucDAO – lấy thông tin danh mục HQL 20 Upload by Cafeitvn.com Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011
CÓ THỂ BẠN MUỐN DOWNLOAD
-
BÀI GIẢNG LẬP TRÌNH JAVA - HUỲNH CÔNG PHÁP
239 p | 263 | 85
-
Bài giảng: Giới thiệu về Package
35 p | 157 | 38
-
Bài giảng Chuyên đề Java: Chương 1 - Nguyễn Hoàng Anh
17 p | 139 | 17
-
Bài giảng Chuyên đề Java: Chương 2 - Nguyễn Hoàng Anh
27 p | 83 | 12
-
Bài giảng Chuyên đề Java: Chương 3 - Nguyễn Hoàng Anh
36 p | 97 | 12
-
Bài giảng Chuyên đề Java: Chương 6 - Nguyễn Hoàng Anh
27 p | 116 | 11
-
Bài giảng Chuyên đề Java: Chương 4 - Nguyễn Hoàng Anh
23 p | 103 | 10
-
Bài giảng Lập trình Java: Chương 3 - Java cơ bản (TT)
9 p | 91 | 6
-
Bài giảng Lập trình Java 1 - Bài 2: Kiểu, toán tử, lệnh if, switch
33 p | 46 | 5
-
Bài giảng Lập trình Java: Chương 2 - Java cơ bản
20 p | 88 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn