Professional Documents
Culture Documents
HIBERNATE MAPPING
ONE-TO-ONE
Nguyn Hong Anh Email: nhanh@fit.hcmus.edu.vn hoanganhis@gmail.com H KHTN, 2011
Upload by Cafeitvn.com
Ni dung trnh by
One to one
Lazy
Fetch Cascade
Upload by Cafeitvn.com
A PK IDA ... PK
FK1 + UNIQUE
Upload by Cafeitvn.com
Upload by Cafeitvn.com
ChungMinhNhanDan
ChungMinhNhanDan
Upload by Cafeitvn.com
UNIQUE KEY
Upload by Cafeitvn.com
SinhVien
ChungMinhNhanDan
SinhVien POJO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
7
- maSinhVien:String - chungMinhNhanDan:ChungMinhNhanDan
implements
- soCMND :String - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String - danToc :String dauVetRiengVaDiHinh :String java.io.Serializable { - ngayCap :Date - noiCap :String - sinhVien :SinhVien
public SinhVien(String maSinhVien) { this.maSinhVien = maSinhVien; } public SinhVien(String maSinhVien, ChungMinhNhanDan chungMinhNhanDan) { this.maSinhVien = maSinhVien; this.chungMinhNhanDan = chungMinhNhanDan; } //Cc phng thc get/set }
Upload by Cafeitvn.com
SinhVien
ChungMinhNhanDan - soCMND :String - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String - danToc :String - dauVetRiengVaDiHinh :String - ngayCap :Date - noiCap :String - sinhVien :SinhVien
CMND POJO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
- maSinhVien:String - chungMinhNhanDan:ChungMinhNhanDan
package pojo; public class ChungMinhNhanDan implements java.io.Serializable { private String soCmnd; private String hoTen; private Date ngaySinh; private String diaChiThuongTru; private String nguyenQuan; private String danToc; private String dauVetRiengVaDiHinh; private Date ngayCap; private String noiCap; private SinhVien sinhVien; //Cc phng thc khi to //Cc phng thc get/set }
Upload by Cafeitvn.com
Lazy
Fetch cascade
Upload by Cafeitvn.com
SinhVien
ChungMinhNhanDan
SinhVien.hbm.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- soCMND :String - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String <hibernate-mapping> - danToc :String dauVetRiengVaDiHinh :String <class catalog="quanlysinhvien" name="pojo.SinhVien" - ngayCap :Date table="sinhvien"> - noiCap :String <id name="maSinhVien" type="string"> - sinhVien :SinhVien
- maSinhVien:String - chungMinhNhanDan:ChungMinhNhanDan
<column length="7" name="MaSinhVien"/> <generator class="assigned"/> </id> <many-to-one class="pojo.ChungMinhNhanDan" name="chungMinhNhanDan" fetch="join" lazy="false" cascade="save-update,delete"> <column length="9" name="SoCMND" unique="true"/> </many-to-one> </class> </hibernate-mapping>
UNIQUE KEY
10
Upload by Cafeitvn.com
SinhVien
ChungMinhNhanDan - soCMND :String - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String - danToc :String - dauVetRiengVaDiHinh :String - ngayCap :Date - noiCap :String - sinhVien :SinhVien
CMND.hbm.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- maSinhVien:String - chungMinhNhanDan:ChungMinhNhanDan
<hibernate-mapping> <class catalog="quanlysinhvien" name="pojo.ChungMinhNhanDan" table="chungminhnhandan"> <id name="soCmnd" type="string"> <column length="9" name="SoCMND"/> <generator class="assigned"/> </id> . . . <one-to-one name="sinhVien" class="pojo.SinhVien" property-ref="chungMinhNhanDan" cascade="save-update,delete"/> </class> </hibernate-mapping>
UNIQUE KEY
11
Upload by Cafeitvn.com
SinhVienDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class SinhVienDAO { public static List<SinhVien> layDanhSachSinhVien() { List<SinhVien> ds = null; Session session = HibernateUtil.getSessionFactory() .openSession(); try { String hql = "select sv from SinhVien sv"; Query query = session.createQuery(hql); ds = query.list(); } catch (HibernateException ex) { System.err.println(ex); } finally { session.close(); } return ds; } . . . }
12
Upload by Cafeitvn.com
SinhVien
ChungMinhNhanDan
SinhVien.hbm.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- soCMND :String - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String <hibernate-mapping> - danToc :String dauVetRiengVaDiHinh :String <class catalog="quanlysinhvien" name="pojo.SinhVien" - ngayCap :Date table="sinhvien"> - noiCap :String <id name="maSinhVien" type="string"> - sinhVien :SinhVien
- maSinhVien:String - chungMinhNhanDan:ChungMinhNhanDan
<column length="7" name="MaSinhVien"/> <generator class="assigned"/> </id> <many-to-one class="pojo.ChungMinhNhanDan" name="chungMinhNhanDan" fetch="join" lazy="false" cascade="save-update,delete"> <column length="9" name="SoCMND" unique="true"/> </many-to-one> </class> </hibernate-mapping>
UNIQUE KEY
13
Upload by Cafeitvn.com
14
Upload by Cafeitvn.com
SinhVienDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class SinhVienDAO { . . . public static SinhVien layThongTinSinhVien( String maSinhVien) { SinhVien sv = null; Session session = HibernateUtil.getSessionFactory(). openSession(); try { sv =(SinhVien)session.get(SinhVien.class, maSinhVien); } catch (HibernateException ex) { System.err.println(ex); } finally { session.close(); } return sv; } . . . }
15
Upload by Cafeitvn.com
SinhVien
ChungMinhNhanDan
SinhVien.hbm.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- soCMND :String - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String <hibernate-mapping> - danToc :String dauVetRiengVaDiHinh :String <class catalog="quanlysinhvien" name="pojo.SinhVien" - ngayCap :Date table="sinhvien"> - noiCap :String <id name="maSinhVien" type="string"> - sinhVien :SinhVien
- maSinhVien:String - chungMinhNhanDan:ChungMinhNhanDan
<column length="7" name="MaSinhVien"/> <generator class="assigned"/> </id> <many-to-one class="pojo.ChungMinhNhanDan" name="chungMinhNhanDan" fetch="join" lazy="false" cascade="save-update,delete"> <column length="9" name="SoCMND" unique="true"/> </many-to-one> </class> </hibernate-mapping>
UNIQUE KEY
16
Upload by Cafeitvn.com
17
Upload by Cafeitvn.com
SinhVienDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public static boolean themSinhVien(SinhVien sv) { Session session = HibernateUtil.getSessionFactory().openSession(); if (SinhVienDAO.layThongTinSinhVien(sv.getMaSinhVien()) != null) { return false; } boolean kq = true; Transaction transaction = null; try { transaction = session.beginTransaction(); session.save(sv); transaction.commit(); } catch (HibernateException ex) { transaction.rollback(); System.err.println(ex); kq = false; } finally { session.close(); } return kq; }
18
Upload by Cafeitvn.com
SinhVien
ChungMinhNhanDan
SinhVien.hbm.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- soCMND :String - hoTen :String - ngaySinh :Date - diaChiThuongTru : String - nguyenQuan :String <hibernate-mapping> - danToc :String dauVetRiengVaDiHinh :String <class catalog="quanlysinhvien" name="pojo.SinhVien" - ngayCap :Date table="sinhvien"> - noiCap :String <id name="maSinhVien" type="string"> - sinhVien :SinhVien
- maSinhVien:String - chungMinhNhanDan:ChungMinhNhanDan
<column length="7" name="MaSinhVien"/> <generator class="assigned"/> </id> <many-to-one class="pojo.ChungMinhNhanDan" name="chungMinhNhanDan" fetch="join" lazy="false" cascade="save-update,delete"> <column length="9" name="SoCMND" unique="true"/> </many-to-one> </class> </hibernate-mapping>
UNIQUE KEY
19
Upload by Cafeitvn.com
public class Main { public static void main(String[] args) { SinhVien sv=new SinhVien(); sv.setMaSinhVien("0312555"); ChungMinhNhanDan cmnd=new ChungMinhNhanDan(); cmnd.setSoCmnd("444555666"); cmnd.setHoTen("T? T?n Thm"); cmnd.setDiaChiThuongTru("140 Quc L 53 Cng Long-Tr Vinh"); cmnd.setNguyenQuan("V?nh Long"); Calendar c=Calendar.getInstance(); c.set(1984, 6, 22); cmnd.setNgaySinh(c.getTime()); c.set(2001, 4, 18); cmnd.setNgayCap(c.getTime()); cmnd.setDanToc("Kinh"); cmnd.setDauVetRiengVaDiHinh("So 3cm trn mt tri"); cmnd.setNoiCap("Tr Vinh"); sv.setChungMinhNhanDan(cmnd); boolean kq=SinhVienDAO.themSinhVien(sv); }
Nguyn Hong Anh nhanh@fit.hcmus.edu.vn H KHTN - 2011
Upload by Cafeitvn.com
ChungMinhNhanDan
21
Upload by Cafeitvn.com
22
Upload by Cafeitvn.com
HI V P
Upload by Cafeitvn.com
23