<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 和風細雨 閱讀(380) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 亚洲国产精品无码一线岛国| 免费无遮挡无码视频网站| 日本亚洲成高清一区二区三区| 老司机福利在线免费观看| 国产男女性潮高清免费网站| 亚洲国产成人AV在线播放| 全免费一级午夜毛片| 亚洲成av人在线观看网站| 精品国产麻豆免费网站| 久久亚洲欧美国产精品| 免费吃奶摸下激烈视频| 免费一级毛片在线播放视频免费观看永久 | 日韩一区二区在线免费观看 | 老司机亚洲精品影院无码| 91在线老王精品免费播放| 亚洲AV无码乱码在线观看裸奔 | 青青操在线免费观看| 国产成人A人亚洲精品无码| 两个人www免费高清视频| 久久精品国产亚洲av麻| 很黄很黄的网站免费的| 亚洲中文字幕无码亚洲成A人片| 国产网站免费观看| 九九热久久免费视频| 亚洲综合视频在线| 成人黄页网站免费观看大全| 亚洲精品亚洲人成在线| 亚洲精品动漫人成3d在线| 成人电影在线免费观看| 亚洲一线产区二线产区精华| 免费观看成人毛片a片2008| 国产亚洲成在线播放va| 亚洲精品国产精品乱码视色| 在线精品一卡乱码免费| 免费中文字幕视频| 久久精品国产亚洲av麻豆色欲 | 亚洲欧洲日本精品| 免费在线观看理论片| 99久久人妻精品免费一区| 亚洲国产精品成人午夜在线观看| 久久久久亚洲AV无码专区桃色|