<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    想飛就別怕摔

    大爺的并TM罵人

    Hibernate學習(九)---【繼承關系】

    繼承關系分為三種:一張表對應一整棵類繼承樹、一個類對應一張表、每一個具體類對應一張表。
    三個java類Person、Student、Teacher,Student和Teacher繼承Person類并且Student和Teacher沒有任何關系
    代碼如下:
    Person.java
    package com.zzn.hibernate.model;

    public class Person {
        
    private int id;
        
    private String name;
        
    private int age;
        
    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;
        }
        
        
    }    
    Student.java
    package com.zzn.hibernate.model;

    public class Student extends Person {
        
    private String cardId;

        
    public String getCardId() {
            
    return cardId;
        }

        
    public void setCardId(String cardId) {
            
    this.cardId = cardId;
        }

    }

    Teacher.java
    package com.zzn.hibernate.model;

    public class Teacher extends Person {
        
    private int salary;
        
    public int getSalary() {
            
    return salary;
        }
        
    public void setSalary(int salary) {
            
    this.salary = salary;
        }
    }
    一張表對應一整棵類繼承樹時
    Person.hbm.xml
    <?xml version="1.0" encoding='gb2312'?>  
    <!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.model">

        
    <class name="Person" table="person">
            
    <id name="id" column="id">
                
    <generator class="identity" />
            
    </id>
            
    <discriminator column="personType" type="java.lang.String" />   <!-- 指定描述符對應的列明,注意discrimination標簽只能緊跟在id標簽后面 -->
            
            
    <property name="name" type="java.lang.String" />                <!-- 公用的name屬性,被兩個sbuclass標簽所用 -->
            
    <property name="age" type="java.lang.Integer" />                <!-- 公用的age屬性,被兩個sbuclass標簽所用 -->
            
            
    <subclass name="Student" discriminator-value="student">            <!-- 映射子類Student,描述符是student,此時已經映射Student類,所以不必再寫Student.hbm.xml -->
                
    <property name="cardId" type="java.lang.String" />            <!-- Student私有的屬性 -->
            
    </subclass>
            
    <subclass name="Teacher" discriminator-value="teacher" >
                
    <property name="salary" type="java.lang.Integer" />            <!-- Teacher私有的屬性 -->
            
    </subclass>
                
        
    </class>
        
    </hibernate-mapping>
    一個類對應一張表
    <?xml version="1.0" encoding='gb2312'?>  
    <!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.model">

        
    <class name="Person" table="person">
            
    <id name="id" column="id">
                
    <generator class="identity" />
            
    </id>
            
    <property name="name" type="java.lang.String" />                
            
    <property name="age" type="java.lang.Integer" />
            
    <joined-subclass name="Student" table="student">
                
    <key column="id" />
                
    <property name="cardId" type="java.lang.String" />
            
    </joined-subclass>
            
            
    <joined-subclass name="Teacher" table="teacher">
                
    <key column="id"/>
                
    <property name="salary" type="java.lang.Integer" />
            
    </joined-subclass>
        
    </class>
        
    </hibernate-mapping>

    hibernate.hbm.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
    >
    <hibernate-configuration>
        
    <session-factory>
            
    <property name="show_sql">true</property>
            
    <property name="hibernate.hbm2ddl.auto">update</property>
            
    <property name="connection.username">sa</property>
            
    <property name="connection.password"></property>
            
    <property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;databasename=hibernate_test</property>
            
    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
            
    <property name="myeclipse.connection.profile">SQL2005</property>
            
    <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
            
    <mapping resource="com/zzn/hibernate/model/Person.hbm.xml"/>
        
    </session-factory>
    </hibernate-configuration>
    測試文件SubclassTest.java
    package com.zzn.hibernate.test;

    import java.util.Iterator;

    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;

    import com.zzn.hibernate.model.Person;
    import com.zzn.hibernate.model.Student;
    import com.zzn.hibernate.model.Teacher;

    public class SubClassTest {
        
    public static void main(String[] args) {
            add();
            select();
        }

        
    public static void add() {
            Configuration configuration 
    = null;
            SessionFactory sessionFactory 
    = null;
            Session session 
    = null;
            Transaction transaction 
    = null;
            Student student 
    = new Student();
            Teacher teacher 
    = new Teacher();
            
    try {
                configuration 
    = new Configuration();
                sessionFactory 
    = configuration.configure().buildSessionFactory();
                session 
    = sessionFactory.openSession();
                transaction 
    = session.beginTransaction();
                student.setName(
    "shanshan");
                student.setAge(
    25);
                student.setCardId(
    "123456");
                teacher.setName(
    "xiaolan");
                teacher.setAge(
    25);
                teacher.setSalary(
    5000);
                session.save(student);
                session.save(teacher);
            } 
    finally {
                
    if (session != null) {
                    transaction.commit();
                    session.close();
                }
            }
        }
        
        
    public static void select(){
            Configuration configuration 
    = null;
            SessionFactory sessionFactory 
    = null;
            Session session 
    = null;
            
    try {
                configuration 
    = new Configuration();
                sessionFactory 
    = configuration.configure().buildSessionFactory();
                session 
    = sessionFactory.openSession();
                Query query 
    = session.createQuery("from Person");
                Iterator iterator 
    = query.list().iterator();
                
    while (iterator.hasNext()){
                    Person person 
    = (Person)iterator.next();
                    System.out.println(person.getName());
                }
            } 
    finally {
                
    if (session != null) {
                    session.close();
                }
            }
        }
    }

    posted on 2009-06-30 21:38 生命的綻放 閱讀(421) 評論(0)  編輯  收藏 所屬分類: Hibernate

    <2009年6月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    導航

    統計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 嫩草影院在线免费观看| 亚洲成人免费网址| 国产精品久久免费视频| 亚洲色大成网站www永久网站| 在线看片韩国免费人成视频| 亚洲国产综合第一精品小说| 99爱在线精品免费观看| 亚洲宅男精品一区在线观看| 免费看国产成年无码AV片| 亚洲依依成人亚洲社区| 麻豆成人精品国产免费| 色吊丝性永久免费看码| 亚洲国产精品一区二区第一页| 你懂的免费在线观看网站| 亚洲天堂久久精品| 很黄很色很刺激的视频免费| 亚洲av永久中文无码精品 | yellow视频免费在线观看| 亚洲真人日本在线| 中文字幕免费在线视频| 78成人精品电影在线播放日韩精品电影一区亚洲 | 中文字幕中韩乱码亚洲大片| 最近中文字幕免费大全| 久久精品蜜芽亚洲国产AV| 免费无码黄动漫在线观看| 一区二区三区免费看| 亚洲国产三级在线观看| 最近高清中文字幕无吗免费看| 亚洲国产AV一区二区三区四区| 免费大黄网站在线看| 久别的草原电视剧免费观看| 亚洲av产在线精品亚洲第一站| 国产伦一区二区三区免费 | 亚洲三级在线播放| 又大又黄又粗又爽的免费视频| baoyu777永久免费视频| 亚洲日韩一区精品射精| 亚洲日本va在线视频观看| 中文字幕无码成人免费视频| 四虎永久在线精品免费一区二区| 亚洲国产成人私人影院|