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

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

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

    和風細雨

    世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運用之術自出。

    單個類包含關系的Hibernate映射

    單類包含是指一個類是另一個類的成員變量,比如有這樣兩個類,個人(Person)和地址(Addr),Addr是Person的成員變量,類圖如下:

    兩個類分別對應數據庫中的Persons和Addrs表,它們的ER圖如下:


    具體怎么把OO對象和具體的數據庫實體表無縫聯系起來呢,下面的代碼展示了如何把兩個類映射到數據庫中的表.

    Person類代碼:
    package com.sitinspring.personaddress;

    public class Person{
        
    private long id;
        
    private long aid;
        
    private String name;
        
    private Addr addr;
        
        
    public Person(){
            
        }

        
        
    public Person(long id,long aid,String name){
            
    this.id=id;
            
    this.aid=aid;
            
    this.name=name;
        }

        
        
    public String toString(){
            
    return "Person id="+id+" aid="+aid+" name="+name+addr;
        }


        
    public long getId() {
            
    return id;
        }


        
    public void setId(long id) {
            
    this.id = id;
        }


        
    public String getName() {
            
    return name;
        }


        
    public void setName(String name) {
            
    this.name = name;
        }


        
    public Addr getAddr() {
            
    return addr;
        }


        
    public void setAddr(Addr addr) {
            
    this.addr = addr;
        }


        
    public long getAid() {
            
    return aid;
        }


        
    public void setAid(long aid) {
            
    this.aid = aid;
        }

    }


    相應的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 package="org.hibernate.auction">
        
    <class name="com.sitinspring.personaddress.Person"
            table
    ="PERSONS">
            
    <id name="id" column="ID" />
            
    <property name="name" column="NAME" />

            
    <many-to-one name="addr" column="AID"
                class
    ="com.sitinspring.personaddress.Addr"  cascade="all" lazy="false"/>
        
    </class>
    </hibernate-mapping>

    Addr類代碼;
    package com.sitinspring.personaddress;


    public class Addr{
        
    private long id;
        
    private String phAddr;
        
    private String mailAddr;
        
        
    public Addr(){
            
        }

        
        
    public Addr(String phAddr,String mailAddr){
            
    this.phAddr=phAddr;
            
    this.mailAddr=mailAddr;
        }

        
        
    public String toString(){
            
    return "Addr id="+id+" phAddr="+phAddr+" mailAddr="+mailAddr;
        }

        
        
    public long getId() {
            
    return id;
        }

        
    public void setId(long id) {
            
    this.id = id;
        }

        
    public String getMailAddr() {
            
    return mailAddr;
        }

        
    public void setMailAddr(String mailAddr) {
            
    this.mailAddr = mailAddr;
        }

        
    public String getPhAddr() {
            
    return phAddr;
        }

        
    public void setPhAddr(String phAddr) {
            
    this.phAddr = phAddr;
        }

    }

    Addr.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="org.hibernate.auction">
        
    <class name="com.sitinspring.personaddress.Addr" table="ADDRS">
            
    <id name="id" column="ID"/>
            
    <property name="phAddr" column="PHADDR" />
            
    <property name="mailAddr" column="MAILADDR" />
        
    </class>
    </hibernate-mapping>

    測試代碼如下:
    package com.sitinspring.personaddress;

    import org.hibernate.Session;

    import com.sitinspring.util.HibernateUtil;

    public class Main {
        
    public static void main(String[] args) {
            Session session 
    = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();

            
    // --插入代碼開始
            Person person=new Person(1,11,"Andy");
            person.setAddr(
    new Addr("Baijing Street","Andy@Andy.com"));        
            session.save(person);
            session.flush();
            
    // --插入代碼結束

            
    // --讀取代碼開始
            long i = 1;
            Person personLoaded 
    = (Person) session.load(Person.class, i);
            System.out.println(personLoaded);
            
    // --讀取代碼開始

            session.getTransaction().commit();
            HibernateUtil.getSessionFactory().close();
        }

    }

    插入完畢后數據庫的內容如下:




    代碼下載:
    http://m.tkk7.com/Files/sitinspring/HibernateClasses20071109085612.rar

    posted on 2008-02-22 11:24 和風細雨 閱讀(371) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 亚洲一区二区三区亚瑟| 免费鲁丝片一级在线观看| www在线观看播放免费视频日本| 亚洲精品美女久久7777777| 亚洲gay片在线gv网站| 韩国免费一级成人毛片| 女性自慰aⅴ片高清免费| 亚洲精品成人a在线观看| 久久亚洲国产欧洲精品一| 久久久久亚洲av无码专区导航| 亚洲精品伊人久久久久| jizz免费在线观看| 亚洲日本一区二区一本一道| 亚洲av午夜福利精品一区| 亚洲欧洲av综合色无码 | 亚洲国产精品yw在线观看| 无码免费又爽又高潮喷水的视频 | 亚洲免费视频网站| 成人免费视频试看120秒| 亚洲一区二区三区在线观看精品中文| 久久久久亚洲AV无码专区首JN | 亚洲成人免费网址| 九一在线完整视频免费观看| 日本片免费观看一区二区| 国产免费av片在线无码免费看 | 亚洲国产午夜精品理论片| 67194成是人免费无码| 亚洲一区中文字幕久久| 在线观看H网址免费入口| 亚洲av成人无码久久精品 | 亚洲第一二三四区| h片在线播放免费高清| 亚洲AV无码国产在丝袜线观看| 免费观看男人吊女人视频| 免费国产a国产片高清网站| 亚洲欧洲日本在线观看| 日韩精品内射视频免费观看 | 波多野结衣免费一区视频 | 午夜亚洲国产精品福利| 一级女人18毛片免费| 老司机午夜免费视频|