想飛就別怕摔

          大爺?shù)牟M罵人

          Hibernate學(xué)習(xí)(五)---【一對(duì)多單項(xiàng)】

          Classes和Student一對(duì)多。要站在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時(shí)級(jí)聯(lián)操作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 生命的綻放 閱讀(466) 評(píng)論(0)  編輯  收藏 所屬分類: Hibernate

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊(cè)

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評(píng)論

          閱讀排行榜

          主站蜘蛛池模板: 万州区| 鹤岗市| 临夏县| 孟连| 定襄县| 扬中市| 新蔡县| 元氏县| 金昌市| 资源县| 石阡县| 郎溪县| 石家庄市| 双江| 麦盖提县| 昭觉县| 漾濞| 大连市| 许昌县| 巴彦县| 肥西县| 内乡县| 天台县| 连云港市| 柳河县| 温宿县| 尚义县| 克拉玛依市| 革吉县| 项城市| 邯郸县| 华蓥市| 余干县| 延长县| 阿拉善左旗| 万源市| 镇江市| 滕州市| 桂东县| 伊宁县| 宁晋县|