想飛就別怕摔

          大爺的并TM罵人

          Hibernate學習(三)---【一對一主鍵雙向關聯】

          Person和IdCard一對一雙向關聯
          Person.java
          package com.zzn.hibernate.OneToOne;

          public class Person {
              
          private int id;
              
          private String name;
              
          private int age;
              
              
          //雙向關聯需要加上Idcard的屬性
              private IdCard idCard;
              
          public IdCard getIdCard() {
                  
          return idCard;
              }
              
          public void setIdCard(IdCard idCard) {
                  
          this.idCard = idCard;
              }
              
          public int getId() {
                  
          return id;
              }
              
          public void setId(int id) {
                  
          this.id = id;
              }
              
          public String getName() {
                  
          return name;
              }
              
          public void setName(String name) {
                  
          this.name = name;
              }
              
          public int getAge() {
                  
          return age;
              }
              
          public void setAge(int age) {
                  
          this.age = age;
              }
              
          }

          IdCard.java
          package com.zzn.hibernate.OneToOne;

          public class IdCard {
              
          private int id;
              
          private String cardNo;
              
          //雙向關聯需要加上person的屬性;
              private Person person;
              
              
          public Person getPerson() {
                  
          return person;
              }
              
          public void setPerson(Person person) {
                  
          this.person = person;
              }
              
          public int getId() {
                  
          return id;
              }
              
          public void setId(int id) {
                  
          this.id = id;
              }
              
          public String getCardNo() {
                  
          return cardNo;
              }
              
          public void setCardNo(String cardNo) {
                  
          this.cardNo = cardNo;
              }
              
          }

          Person.hbm.xml
          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping PUBLIC 
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
          >
          <hibernate-mapping>
              
          <class name="com.zzn.hibernate.OneToOne.Person" table="PERSON">
                  
          <id name="id" column="id">
                      
          <generator class="foreign">
                          
          <param name="property">idCard</param>
                      
          </generator>
                  
          </id>
                  
          <property name="name" />
                  
          <property name="age" />
                  
          <one-to-one name="idCard" constrained="true" />
              
          </class>
          </hibernate-mapping>

          Idcard.hbm.xml
          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping PUBLIC 
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
          >
          <hibernate-mapping>
              
          <class name="com.zzn.hibernate.OneToOne.IdCard" table="ID_CARD">
                  
          <id name="id" column="id">
                      
          <generator class="native" />
                  
          </id>
                  
          <property name="cardNo" />
                  
          <one-to-one name="person" />
              
          </class>
          </hibernate-mapping>

          test
          package com.zzn.hibernate;

          import junit.framework.TestCase;

          import org.hibernate.Session;
          import org.hibernate.Transaction;

          import com.zzn.hibernate.OneToOne.IdCard;
          import com.zzn.hibernate.OneToOne.Person;
          import com.zzn.hibernate.hibernateUtil.HibernateUtils;

          public class OneToOne_pk2 extends TestCase {
              
          public void OneToOne_pk2_1() {
                  Session session 
          = null;
                  Transaction tx 
          = null;
                  
          try {
                      session 
          = HibernateUtils.getSession();
                      tx 
          = session.beginTransaction();
                      IdCard idCard 
          = new IdCard();
                      Person person 
          = new Person();

                      idCard.setCardNo(
          "11111111");
                      person.setName(
          "劉德華");
                      person.setAge(
          50);
                      person.setIdCard(idCard);
                      System.out.println(
          "person's name = " + person.getName());
                      System.out.println(
          "idCard's cardNo = "
                              
          + person.getIdCard().getCardNo());
                  }
           catch (Exception e) {
                      e.printStackTrace();
                  }
           finally {
                      
          if (session != null{
                          
          if (session.isOpen()) {
                              tx.commit();
                              session.close();
                          }

                      }

                  }

              }


              
          public void OneToOne_pk2_2() {
                  Session session 
          = null;
                  Transaction tx 
          = null;
                  
          try {
                      session 
          = HibernateUtils.getSession();
                      tx 
          = session.beginTransaction();
                      IdCard idCard 
          = new IdCard();
                      Person person 
          = new Person();

                      person.setName(
          "周杰倫");
                      person.setAge(
          30);
                      idCard.setCardNo(
          "2222222");
                      idCard.setPerson(person);

                      System.out.println(
          "idCard's number = " + idCard.getCardNo());
                      System.out.println(
          "person's name = "
                              
          + idCard.getPerson().getName());

                  }
           catch (Exception e) {
                      e.printStackTrace();
                  }
           finally {
                      tx.commit();
                      HibernateUtils.closeSession(session);
                  }

              }

          }

          posted on 2009-11-01 12:08 生命的綻放 閱讀(448) 評論(0)  編輯  收藏 所屬分類: Hibernate

          <2009年11月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 瑞丽市| 岳阳市| 双桥区| 洮南市| 丰宁| 梧州市| 大竹县| 昆山市| 清远市| 五家渠市| 穆棱市| 赤壁市| 金阳县| 三江| 宿州市| 桐城市| 益阳市| 上犹县| 汶上县| 图们市| 常熟市| 剑川县| 洞头县| 东丽区| 柳州市| 广丰县| 西安市| 天长市| 盐边县| 芜湖市| 宜州市| 唐海县| 富裕县| 清远市| 岚皋县| 体育| 哈尔滨市| 榆中县| 永德县| 临洮县| 五家渠市|