17. Hibernate Mapping - One-To-One

download 17. Hibernate Mapping - One-To-One

of 23

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/