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

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

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

    Topquan's Blog

    分享價值----成就你我----我的博客----你的家

    Hibernate Component

    將實體對象中的邏輯組成稱為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() 
    > 0true);
            } 
    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-08-05 00:49 topquan 閱讀(3462) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 国产成人在线观看免费网站| 91热久久免费精品99| 日韩人妻无码免费视频一区二区三区| 亚洲欧洲久久精品| 亚洲三级在线免费观看| 亚洲欧洲自拍拍偷综合| 美女内射毛片在线看免费人动物| 亚洲精品自拍视频| 99在线精品免费视频九九视| 亚洲一卡2卡3卡4卡乱码 在线| 成人免费看黄20分钟| 亚洲精品国产av成拍色拍| 国产大片91精品免费观看男同| 国产亚洲福利一区二区免费看| 可以免费观看的一级毛片| 九九视频高清视频免费观看| 亚洲色欲一区二区三区在线观看| 久久免费观看国产精品88av| 亚洲一区二区影院| 成年女性特黄午夜视频免费看| 亚洲精品色在线网站| 久久精品亚洲福利| 99在线热视频只有精品免费| 中文字幕亚洲男人的天堂网络| 国产特级淫片免费看| 中文无码日韩欧免费视频| 亚洲国产日韩一区高清在线 | 女人18特级一级毛片免费视频| 亚洲成a∨人片在无码2023| 亚洲精品偷拍视频免费观看| 中文字幕免费观看全部电影| 91嫩草亚洲精品| 四虎1515hm免费国产| 日本人成在线视频免费播放| 亚洲精品二三区伊人久久| 亚洲AV成人精品日韩一区18p| 日本亚洲欧洲免费天堂午夜看片女人员| 亚洲AV综合色区无码二区偷拍| 亚洲国产成人五月综合网 | 国产乱子伦片免费观看中字| a级片在线免费看|