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

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

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

    和風(fēng)細(xì)雨

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

    單個(gè)類包含關(guān)系的Hibernate映射

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

    兩個(gè)類分別對(duì)應(yīng)數(shù)據(jù)庫(kù)中的Persons和Addrs表,它們的ER圖如下:


    具體怎么把OO對(duì)象和具體的數(shù)據(jù)庫(kù)實(shí)體表無縫聯(lián)系起來呢,下面的代碼展示了如何把兩個(gè)類映射到數(shù)據(jù)庫(kù)中的表.

    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;
        }

    }


    相應(yīng)的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>

    測(cè)試代碼如下:
    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();
            
    // --插入代碼結(jié)束

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

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

    }

    插入完畢后數(shù)據(jù)庫(kù)的內(nèi)容如下:




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

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

    主站蜘蛛池模板: 免费午夜爽爽爽WWW视频十八禁| 97久久精品亚洲中文字幕无码| 在线观看亚洲天天一三视| 中文字幕精品无码亚洲字| 亚洲AV日韩精品久久久久久久| 亚洲白色白色在线播放| AV在线播放日韩亚洲欧| 亚洲国产成人一区二区精品区| 911精品国产亚洲日本美国韩国 | 中文字幕不卡亚洲 | av在线亚洲欧洲日产一区二区| 免费视频成人手机在线观看网址| AAA日本高清在线播放免费观看| a级毛片黄免费a级毛片| 亚洲精品欧美综合四区| 看全免费的一级毛片| 黄色网址在线免费| 国产成人免费网站| 亚洲无码黄色网址| 老司机亚洲精品影院无码| 亚洲精品国产av成拍色拍| 成人精品视频99在线观看免费| 精品国产sm捆绑最大网免费站| 免费又黄又爽又猛的毛片| 亚洲第一视频网站| 国产精品亚洲综合天堂夜夜| 中文无码成人免费视频在线观看| 欧美a级在线现免费观看| 久久久久亚洲精品天堂久久久久久 | 亚洲ⅴ国产v天堂a无码二区| 亚洲色成人WWW永久在线观看| 国产精品极品美女自在线观看免费| 免费亚洲视频在线观看| 久久一本岛在免费线观看2020| 在线观看免费大黄网站| 久久精品国产精品亚洲艾草网 | 亚洲国产乱码最新视频| 老外毛片免费视频播放| 亚洲伊人tv综合网色| 亚洲中文字幕在线无码一区二区| 久久久青草青青国产亚洲免观|