17. Hibernate Mapping - One-To-One
Transcript of 17. Hibernate Mapping - One-To-One
-
7/27/2019 17. Hibernate Mapping - One-To-One
1/23
HIBERNATE MAPPING
ONE-TO-ONE
CHUYN JAVA
Nguyn Hong AnhEmail: [email protected]
[email protected] KHTN, 2011
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
2/23
Nguyn Hong Anh [email protected] KHTN - 2011
Ni dung trnh by
One to one
Lazy
Fetch
Cascade
2
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
3/23
-
7/27/2019 17. Hibernate Mapping - One-To-One
4/23
Nguyn Hong Anh [email protected] KHTN - 2011
Quan h mt-mt (one-to-one)
Trong ngdngqun l sinh vin
Mi sinh vin c mtgiychng minh nhn dn
Michng minh nhn dn thucvmt sinh vin
Mi quan hgia sinh vin v chng minh nhn dnl mi quan hmt-mt (one-to-one)
4
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
5/23
Nguyn Hong Anh [email protected] KHTN - 2011
ChungMinhNhanDan
SinhVien
Quan h mt-mt (one-to-one)
5
Sinhvien ChungMinhNhanDan1 1
UNIQUE KEY
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
6/23
Nguyn Hong Anh [email protected] KHTN - 2011
Quan h mt-mt (one-to-one)
6
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
UNIQUE KEY
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
7/23Nguyn Hong Anh [email protected] KHTN - 2011
SinhVien POJO
7
1
2
3
4
5
6
78
9
10
11
12
13
14
15
16
17
18
19
package pojo;
publicclass SinhVien implements java.io.Serializable {
private String maSinhVien;
private ChungMinhNhanDan chungMinhNhanDan;
public SinhVien() {}
public SinhVien(String maSinhVien) {
this.maSinhVien = maSinhVien;
}
public SinhVien(String maSinhVien,
ChungMinhNhanDan chungMinhNhanDan) {
this.maSinhVien = maSinhVien;
this.chungMinhNhanDan = chungMinhNhanDan;
}
//Ccphng thc get/set
}
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
8/23Nguyn Hong Anh [email protected] KHTN - 2011
CMND POJO
8
1
2
3
4
5
6
78
9
10
11
12
13
14
15
16
17
package pojo;
publicclass 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
//Ccphng thc get/set
}
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
9/23Nguyn Hong Anh [email protected] KHTN - 2011
Quan h mt-mt (one-to-one)
Mapping mi quan h mt-mt ging nh mappingtrong mi quan hnhiu-mt
Nhng thm thuc tnh unique="true
C th khai bo sdngthuc tnh
Lazy
Fetch
cascade
9
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
10/23Nguyn Hong Anh [email protected] KHTN - 2011
SinhVien.hbm.xml
10
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
1
2
3
4
5
6
78
9
10
11
12
13
14
15
UNIQUE KEY
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
11/23Nguyn Hong Anh [email protected] KHTN - 2011
CMND.hbm.xml
11
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
1
2
3
4
5
6
78
9
10
11
12
13
14
15
. . .
UNIQUE KEY
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
12/23Nguyn Hong Anh [email protected] KHTN - 2011
SinhVienDAO
12
1
2
3
4
5
6
78
9
10
11
12
13
14
15
16
17
18
publicclass SinhVienDAO {
publicstatic List layDanhSachSinhVien() {
List 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;
}
. . .
}
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
13/23Nguyn Hong Anh [email protected] KHTN - 2011
SinhVien.hbm.xml
13
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
1
2
3
4
5
6
78
9
10
11
12
13
14
15
UNIQUE KEY
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
14/23Nguyn Hong Anh [email protected] KHTN - 2011
Mainly danh sch sinh vin
14
1
2
3
4
5
6
78
9
10
11
publicclass Main {
publicstaticvoidmain(String[] args) {
List ds=SinhVienDAO.layDanhSachSinhVien();
for(int i=0; i
-
7/27/2019 17. Hibernate Mapping - One-To-One
15/23
Nguyn Hong Anh [email protected] KHTN - 2011
SinhVienDAO
15
1
2
3
4
5
6
78
9
10
11
12
13
14
15
16
17
18
publicclass SinhVienDAO {
. . .
publicstatic 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;
}
. . .
}
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
16/23
Nguyn Hong Anh [email protected] KHTN - 2011
SinhVien.hbm.xml
16
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
1
2
3
4
5
6
78
9
10
11
12
13
14
15
UNIQUE KEY
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
17/23
Nguyn Hong Anh [email protected] KHTN - 2011
Mainly thng tin sinh vin
17
1
2
3
4
5
6
78
9
publicclass Main {
publicstaticvoidmain(String[] args) {
SinhVien v=null;
sv=SinhVienDAO.layThongTinSinhVien("0712222");
. . .}
}
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
18/23
Nguyn Hong Anh [email protected] KHTN - 2011
SinhVienDAO
18
1
2
3
4
5
6
7
89
10
11
12
13
14
15
16
17
18
19
20
publicstaticboolean themSinhVien(SinhVien sv) {
Session session = HibernateUtil.getSessionFactory().openSession();
if (SinhVienDAO.layThongTinSinhVien(sv.getMaSinhVien()) != null) {
returnfalse;
}
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;
}
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
19/23
Nguyn Hong Anh [email protected] KHTN - 2011
SinhVien.hbm.xml
19
SinhVien ChungMinhNhanDan
- soCMND :String
- hoTen :String
- ngaySinh :Date
- diaChiThuongTru : String
- nguyenQuan :String
- danToc :String
- dauVetRiengVaDiHinh :String
- ngayCap :Date
- noiCap :String
- sinhVien :SinhVien
1 1
- maSinhVien:String
- chungMinhNhanDan:ChungMinhNhanDan
1
2
3
4
5
6
78
9
10
11
12
13
14
15
UNIQUE KEY
http://cafeitvn.com/http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
20/23
Nguyn Hong Anh [email protected] KHTN - 2011
Main thm sinh vin cng cmnd
20
1
2
3
4
5
6
78
9
10
11
12
13
14
15
16
16
18
19
publicclass Main {
publicstaticvoidmain(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 QucL 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("So3cm trn mt tri");cmnd.setNoiCap("Tr Vinh");
sv.setChungMinhNhanDan(cmnd);
boolean kq=SinhVienDAO.themSinhVien(sv);
}
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
21/23
Nguyn Hong Anh [email protected] KHTN - 2011
SinhVien
Main thm sinh vin cng cmnd
21
ChungMinhNhanDan
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
22/23
Nguyn Hong Anh [email protected] KHTN - 2011
Ti liu tham kho
Nguyn Hong Anh, Tp bi ging v video mnchuyn Java, 2010
Gary Mak, Tp hng dn tng bc Hibernate,
2006
22
http://cafeitvn.com/ -
7/27/2019 17. Hibernate Mapping - One-To-One
23/23
Nguyn Hong Anh nhanh@fit hcmus edu vn H KHTN 2011
HI V P
23
http://cafeitvn.com/