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

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

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

    將實體對象中的邏輯組成稱為component。在配置文件中,使用component節點對組件進行聲明。

    例如,一個用戶有兩個部分組成,姓名和聯系方式。姓名和聯系方式都可以作為用戶的組成部分。

    1.表結構如下
    use?sample;
    DROP?TABLE?t_user;

    CREATE?TABLE?t_user?(
    ???????id?
    INT?NOT?NULL?AUTO_INCREMENT
    ?????,?age?
    INT
    ?????,?firstname?
    VARCHAR(50)
    ?????,?lastname?
    VARCHAR(50)
    ?????,?address?
    VARCHAR(200)
    ?????,?zipcode?
    VARCHAR(10)
    ?????,?tel?
    VARCHAR(20)
    ?????,?
    PRIMARY?KEY?(id)
    );

    2.配置文件
    TUser.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>
    <!--?
    ????????Auto-generated?mapping?file?from
    ????????the?hibernate.org?cfg2hbm?engine
    -->
    ????<class?name
    ="cn.blogjava.component.TUser"?table="t_user"?catalog="sample">
    ????????<id?name
    ="id"?type="integer">
    ????????????<column?name
    ="id"?/>
    ????????????<generator?class
    ="native"?/>
    ????????</id>
    ????????<property?name
    ="age"?type="integer">
    ????????????<column?name
    ="age"?/>
    ????????</property>
    ????????<component?name
    ="name"?class="cn.blogjava.component.Name">
    ????????????<property?name
    ="firstname"?type="string">
    ????????????????<column?name
    ="firstname"?length="50"?/>
    ????????????</property>
    ????????????<property?name
    ="lastname"?type="string">
    ????????????????<column?name
    ="lastname"?length="50"?/>
    ????????????</property>
    ????????</component>
    ????????<component?name
    ="contact"?class="cn.blogjava.component.Contact">
    ????????????<property?name
    ="address"?type="string">
    ????????????????<column?name
    ="address"?length="200"?/>
    ????????????</property>
    ????????????<property?name
    ="zipcodes"?type="string">
    ????????????????<column?name
    ="zipcode"?length="10"?/>
    ????????????</property>
    ????????????<property?name
    ="tel"?type="string">
    ????????????????<column?name
    ="tel"?length="20"?/>
    ????????????</property>
    ????????</component>
    ????</class>
    </hibernate-mapping>
    將TUser.hbm.xml配置文件加入到hibernate.cfg.xml中去

    3.POJO類
    Contact.java
    package?cn.blogjava.component;

    import?java.io.Serializable;

    public?class?Contact?implements?Serializable?{
    ????
    ????
    private?String?address;
    ????
    private?String?zipcodes;
    ????
    private?String?tel;
    ????
    ????
    public?String?getAddress()?{
    ????????
    return?address;
    ????}
    ????
    public?void?setAddress(String?address)?{
    ????????
    this.address?=?address;
    ????}
    ????
    public?String?getTel()?{
    ????????
    return?tel;
    ????}
    ????
    public?void?setTel(String?tel)?{
    ????????
    this.tel?=?tel;
    ????}
    ????
    public?String?getZipcodes()?{
    ????????
    return?zipcodes;
    ????}
    ????
    public?void?setZipcodes(String?zipcodes)?{
    ????????
    this.zipcodes?=?zipcodes;
    ????}
    ????
    ????
    }

    Name.java
    package?cn.blogjava.component;

    import?java.io.Serializable;

    public?class?Name?implements?Serializable?{
    ????
    ????
    private?String?firstname;
    ????
    private?String?lastname;
    ????
    ????
    public?String?getFirstname()?{
    ????????
    return?firstname;
    ????}
    ????
    public?void?setFirstname(String?firstname)?{
    ????????
    this.firstname?=?firstname;
    ????}
    ????
    public?String?getLastname()?{
    ????????
    return?lastname;
    ????}
    ????
    public?void?setLastname(String?lastname)?{
    ????????
    this.lastname?=?lastname;
    ????}
    ????
    ????
    }

    TUser.java
    package?cn.blogjava.component;


    public?class?TUser??implements?java.io.Serializable?{
    ????
    private?Integer?id;
    ????
    private?Integer?age;
    ????
    private?Name?name;
    ????
    private?Contact?contact;
    ????
    ????
    public?Integer?getAge()?{
    ????????
    return?age;
    ????}
    ????
    public?void?setAge(Integer?age)?{
    ????????
    this.age?=?age;
    ????}
    ????
    public?Contact?getContact()?{
    ????????
    return?contact;
    ????}
    ????
    public?void?setContact(Contact?contact)?{
    ????????
    this.contact?=?contact;
    ????}
    ????
    public?Integer?getId()?{
    ????????
    return?id;
    ????}
    ????
    public?void?setId(Integer?id)?{
    ????????
    this.id?=?id;
    ????}
    ????
    public?Name?getName()?{
    ????????
    return?name;
    ????}
    ????
    public?void?setName(Name?name)?{
    ????????
    this.name?=?name;
    ????}
    ?????
    }

    4.測試類
    package?cn.blogjava.component;

    import?java.util.List;

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

    import?junit.framework.TestCase;
    import?junit.framework.Assert;

    public?class?HibernateTest?extends?TestCase?{
    ????
    ????Session?session?
    =?null;
    ????
    ????
    protected?void?setUp(){
    ????????
    try?{
    ????????????Configuration?config?
    =?new?Configuration().configure();
    ????????????SessionFactory?sessionFactory?
    =?config.buildSessionFactory();
    ????????????session?
    =?sessionFactory.openSession();
    //????????????delete();
    ????????}?catch?(HibernateException?e)?{
    ????????????
    //?TODO:?handle?exception
    ????????????e.printStackTrace();
    ????????}
    ????}
    ????
    ????
    protected?void?tearDown()?{
    ????????
    try?{
    ????????????session.close();
    ????????}?
    catch?(HibernateException?e)?{
    ????????????
    //?TODO:?handle?exception
    ????????????e.printStackTrace();????????????
    ????????}
    ????}
    ????
    ????
    public?void?delete(){
    ????????Transaction?tran?
    =?null;
    ????????String?hql?
    =?"?delete?TUser";
    ????????
    try?{
    ????????????tran?
    =?session.beginTransaction();
    ????????????Query?query?
    =?session.createQuery(hql);
    ????????????
    int?ret?=?query.executeUpdate();
    ????????????System.out.println(
    "Delete?records?=>?"?+?ret);
    ????????????tran.commit();
    ????????}?
    catch?(HibernateException?e)?{
    ????????????
    //?TODO:?handle?exception
    ????????????e.printStackTrace();
    ????????????Assert.fail(e.getMessage());
    ????????????
    if(tran?!=?null)?{
    ????????????????
    try?{
    ????????????????????tran.rollback();
    ????????????????}?
    catch(HibernateException?e2)?{
    ????????????????????e2.printStackTrace();
    ????????????????}
    ????????????}
    ????????}
    ????}
    ????
    ????
    public?void?testInsert(){
    ????????Transaction?tran?
    =?null;
    ????????
    try?{
    ????????????System.out.println(
    "session?is?"?+?session);
    ????????????tran?
    =?session.beginTransaction();
    ????????????
    ????????????
    //user1
    ????????????TUser?user?=?new?TUser();
    ????????????user.setAge(
    25);
    ????????????Name?name?
    =?new?Name();
    ????????????name.setFirstname(
    "yu");
    ????????????name.setLastname(
    "yy");
    ????????????user.setName(name);
    ????????????Contact?contact?
    =?new?Contact();
    ????????????contact.setAddress(
    "dalian");
    ????????????contact.setTel(
    "42689334");
    ????????????contact.setZipcodes(
    "116023");
    ????????????user.setContact(contact);
    ????????????
    ????????????session.save(user);
    ????????????
    ????????????
    //user2
    ????????????TUser?user2?=?new?TUser();
    ????????????user2.setAge(
    26);
    ????????????Name?name2?
    =?new?Name();
    ????????????name2.setFirstname(
    "bai");
    ????????????name2.setLastname(
    "yf");
    ????????????user2.setName(name2);
    ????????????Contact?contact2?
    =?new?Contact();
    ????????????contact2.setAddress(
    "beijing");
    ????????????contact2.setTel(
    "12345678");
    ????????????contact2.setZipcodes(
    "100010");
    ????????????user2.setContact(contact2);????????????
    ????????????
    ????????????session.save(user2);
    ????????????
    ????????????session.flush();
    ????????????tran.commit();
    ????????????Assert.assertEquals(user.getId().intValue()?
    >?0,?true);
    ????????}?
    catch?(Exception?e)?{
    ????????????
    //?TODO:?handle?exception
    ????????????e.printStackTrace();
    ????????????Assert.fail(e.getMessage());
    ????????????
    if(tran?!=?null)?{
    ????????????????
    try?{
    ????????????????????tran.rollback();
    ????????????????}?
    catch(HibernateException?e2)?{
    ????????????????????e2.printStackTrace();
    ????????????????}
    ????????????}
    ????????}
    ????}
    ????
    ????
    public?void?testSelect(){
    ????????String?hql?
    =?"?from?TUser?where?age=25?";
    ????????
    try?{
    ????????????List?userList?
    =?session.createQuery(hql).list();
    ????????????TUser?user?
    =?(TUser)userList.get(0);
    ????????????Contact?contact?
    =?user.getContact();
    ????????????Assert.assertEquals(contact.getAddress(),?
    "dalian");
    ????????????Assert.assertEquals(user.getName().getFirstname(),?
    "yu");
    ????????}?
    catch?(HibernateException?e)?{
    ????????????
    //?TODO:?handle?exception
    ????????????e.printStackTrace();
    ????????????Assert.fail(e.getMessage());
    ????????}
    ????}
    }
    posted on 2006-07-05 14:55 knowhow 閱讀(286) 評論(0)  編輯  收藏 所屬分類: ORM:Hibernate及其他
    主站蜘蛛池模板: 好男人视频在线观看免费看片| 国产精品另类激情久久久免费| 图图资源网亚洲综合网站| 本道天堂成在人线av无码免费| 日韩成人免费在线| 你好老叔电影观看免费| 久久精品国产亚洲精品2020| 最近2019年免费中文字幕高清| 美女隐私免费视频看| 亚洲成a人片77777群色| 亚洲国产成人影院播放| 午夜国产精品免费观看 | 亚洲 欧洲 自拍 另类 校园| 亚洲精品无码高潮喷水在线| 四虎永久在线观看免费网站网址| 黄色短视频免费看| 婷婷国产偷v国产偷v亚洲| 亚洲视频网站在线观看| 亚洲第一视频网站| 亚洲国产精品一区| 亚洲色图校园春色| 久久亚洲AV成人出白浆无码国产| 亚洲精品高清国产一久久| 亚洲狠狠婷婷综合久久久久 | 亚洲一区二区三区国产精华液| 亚洲自偷精品视频自拍| 亚洲大尺码专区影院| 精品亚洲成A人无码成A在线观看| 亚洲国产精品成人综合色在线婷婷 | 台湾一级毛片永久免费| 免费国产小视频在线观看| 亚洲AV成人精品日韩一区18p| 在线观看国产区亚洲一区成人| 亚洲欧洲日产国码一级毛片| 亚洲AV日韩AV天堂久久| jlzzjlzz亚洲jzjzjz| 一级黄色毛片免费看| 最近2019免费中文字幕6| 免费无码不卡视频在线观看| 国产亚洲一区二区三区在线不卡| 久久久久亚洲AV成人片|