想飛就別怕摔

          大爺的并TM罵人

          Hibernate學習(五)---【一對多單項】

          Classes和Student一對多。要站在classes這段來看。
          classes.java
          package com.zzn.hibernate.oneToMany;

          import java.util.Set;

          public class Classes {
              
          private int id;
              
          private String name;
              
          private Set students;

              
          public Set getStudents() {
                  
          return students;
              }
              
          public void setStudents(Set students) {
                  
          this.students = students;
              }
              
          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;
              }
              
              
          }

          Student.java
          package com.zzn.hibernate.oneToMany;

          public class Student {
              
          private int id;
              
          private String name;
              
              
          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;
              }

          }


          Class.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 package="com.zzn.hibernate.oneToMany">
              
          <class name="Classes" table="CLASSES">
                  
          <id name="id" column="id">
                      
          <generator class="native" />
                  
          </id>
                  
          <property name="name" />
                  
          <!--cascade="all"才能操作classes時級聯操作student  -->
                  
          <set name="students" cascade="all">
                      
          <!-- key 這里不能是not-null="true" -->
                      
          <key column="classesid"/>
                      
          <one-to-many class="Student"/>
                  
          </set>
              
          </class>
          </hibernate-mapping>

          Student.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.oneToMany.Student" table="STUDENT">
                  
          <id name="id" column="id">
                      
          <generator class="native" />
                  
          </id>
                  
          <property name="name" />
              
          </class>

          </hibernate-mapping>

          test.java
          package com.zzn.hibernate;

          import java.util.HashSet;
          import java.util.Iterator;
          import java.util.Set;

          import junit.framework.TestCase;

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

          import com.zzn.hibernate.hibernateUtil.HibernateUtils;
          import com.zzn.hibernate.oneToMany.Classes;
          import com.zzn.hibernate.oneToMany.Student;

          public class OneToManyTest extends TestCase {
              
              @SuppressWarnings(
          "unchecked")
              
          public void OneToManySave() {
                  Session session 
          = null;
                  Transaction tx 
          = null;
                  
          try {
                      session 
          = HibernateUtils.getSession();
                      tx 
          = session.beginTransaction();
                      
                      Student student1 
          = new Student();
                      student1.setName(
          "劉德華");
                      Student student2 
          = new Student();
                      student2.setName(
          "周杰倫");

                      Set students 
          = new HashSet();
                      students.add(student1);
                      students.add(student2);
                      
                      Classes classes 
          = new Classes();
                      classes.setName(
          "中國");
                      classes.setStudents(students);
                      
                      session.save(classes);
                      
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  } 
          finally {
                      
          if (session != null) {
                          
          if (session.isOpen()) {
                              tx.commit();
                              session.close();
                          }
                      }
                  }
              }
              
              @SuppressWarnings(
          "unchecked")
              
          public void OneToManyLoad() {
                  Session session 
          = null;
                  Transaction tx 
          = null;
                  
          try {
                      session 
          = HibernateUtils.getSession();
                      tx 
          = session.beginTransaction();
                      Classes classes 
          = (Classes)session.load(Classes.class1);
                      Set students 
          = classes.getStudents();
                      
          for (Iterator iter=students.iterator(); iter.hasNext();){
                          Student student 
          = (Student)iter.next();
                          System.out.println(
          "student.name="+student.getName());
                      }
                      
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  } 
          finally {
                      
          if (session != null) {
                          
          if (session.isOpen()) {
                              tx.commit();
                              session.close();
                          }
                      }
                  }
              }
          }

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

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

          導航

          統計

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 宜春市| 苏尼特左旗| 吴川市| 武川县| 即墨市| 正定县| 武城县| 瑞丽市| 阿鲁科尔沁旗| 瓮安县| 榆树市| 株洲市| 喀喇| 朝阳市| 定边县| 城步| 科尔| 洛川县| 惠州市| 炉霍县| 天峨县| 高安市| 东乌珠穆沁旗| 徐汇区| 库车县| 曲麻莱县| 长沙市| 赞皇县| 灵山县| 柏乡县| 祁阳县| 维西| 宜阳县| 包头市| 江陵县| 老河口市| 佛教| 嘉定区| 溧水县| 苍溪县| 松潘县|