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

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

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

    隨筆-61  評(píng)論-159  文章-0  trackbacks-0

    在hibernate中,component是某個(gè)實(shí)體的邏輯組成部分,它與實(shí)體的根本區(qū)別是沒有oid,
    component可以成為是值對(duì)象(DDD)

    采用component映射的好處:它實(shí)現(xiàn)了對(duì)象模型的細(xì)粒度劃分,層次會(huì)更分明,復(fù)用率會(huì)更高。

    例子:一個(gè)用戶類,包含比較多的用戶信息,姓名、地址、電子郵件、郵編、電話等等,因此這樣如果只集中一個(gè)POJO類的話,就造成對(duì)象模型的力度比較粗,因此有必要重新劃分對(duì)象粒度,提供程序運(yùn)行效率。

    因此把User劃分為User和Contact兩個(gè)類

    1、User的POJO類

    public class User {
     private int id;
     private String name;
     private Contact contact;

    //省略setter、getter方法
    }
    2、從User中劃分出來的Contact類

    public class Contact {
     private String email;
     private String address;
     private String zipCode;
     private String contactTel;

    //省略setter、getter方法
    }
    3、User的映射文件User.hbm.xml

     1<?xml version="1.0"?>
     2<!DOCTYPE hibernate-mapping PUBLIC 
     3    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5<hibernate-mapping package="org.apple.hibernate">
     6    <class name="User" table="t_user">
     7        <id name="id">
     8            <generator class="native"/>
     9        </id>
    10         <property name="name"/>
    11         <component name="contact">
    12             <property name="email"/>
    13             <property name="address"/>
    14             <property name="zipCode"/>
    15             <property name="contactTel"/>
    16         </component>
    17    </class>
    18</hibernate-mapping>

    4、數(shù)據(jù)庫(kù)表結(jié)構(gòu):

    mysql> desc t_user;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | id              | int(11)           | NO    | PRI | NULL   | auto_increment |
    | name         | varchar(255) | YES  |        | NULL    |                         |
    | email         | varchar(255) | YES  |        | NULL    |                         |
    | address     | varchar(255) | YES  |        | NULL    |                         |
    | zipCode    | varchar(255) | YES  |        | NULL    |                         |
    | contactTel | varchar(255) | YES  |        | NULL    |                         |
    +------------+--------------+------+-----+---------+----------------+
    6 rows in set (0.02 sec)

    5、測(cè)試方法:
     1public void testSave1()
     2    {
     3        Session session = null;
     4        try {
     5            session = HibernateUtil.getSession();
     6            session.beginTransaction();
     7            User u = new User();
     8            u.setName("張三");
     9            Contact contact = new Contact();
    10            contact.setAddress("********");
    11            contact.setEmail("*****@163.com");
    12            contact.setZipCode("000000000");
    13            contact.setContactTel("1234567890");
    14            u.setContact(contact);
    15            session.save(u);
    16            session.beginTransaction().commit();
    17        }
     catch (Exception e) {
    18            e.printStackTrace();
    19            session.beginTransaction().rollback();
    20        }
    finally{
    21            session.close();
    22        }

    23        
    24    }

    PS、由于Contact沒有映射文件,在User中使用了Component映射標(biāo)簽,加入Contact里面的屬性,所以在測(cè)試方法里面不用調(diào)用session.save(contact);,只調(diào)用第15行中的u.setContact(contact);即可。

    -------------------------------------------------------------------------------------------------
    PS:本博客文章,如果沒有注明是有“轉(zhuǎn)”字樣,屬于本人原創(chuàng)。如果需要轉(zhuǎn)載,務(wù)必注明作者文章的詳細(xì)出處地址,否則不允許轉(zhuǎn)載,多謝合作!
    posted on 2008-10-23 23:19 apple0668 閱讀(694) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: AV无码免费永久在线观看| 亚洲制服丝袜一区二区三区| 天天摸天天碰成人免费视频| 美女无遮挡拍拍拍免费视频| 亚洲欧好州第一的日产suv| 亚洲视频在线观看视频| 亚洲精品无码久久久久| 亚洲国产婷婷综合在线精品 | 怡红院亚洲怡红院首页| 久热综合在线亚洲精品| 亚洲精品天堂成人片?V在线播放| 成年美女黄网站18禁免费| 2021国内精品久久久久精免费| 久久久精品免费国产四虎| 伊人久久国产免费观看视频| 亚洲一区免费观看| 黄瓜视频高清在线看免费下载 | 久久精品国产亚洲综合色| 亚洲精品成人区在线观看| 国产高清在线免费| 黄色网址免费在线观看| 青青免费在线视频| 苍井空亚洲精品AA片在线播放 | 亚洲日本久久一区二区va| 亚洲国产成人精品91久久久| 免费看大美女大黄大色| a视频在线观看免费| 五月天婷婷精品免费视频| 黄色免费在线网址| 老外毛片免费视频播放| 国产亚洲高清在线精品不卡| 色窝窝亚洲AV网在线观看| 亚洲欧美日本韩国| 亚洲综合色一区二区三区| 亚洲中文字幕无码爆乳app| 亚洲日韩亚洲另类激情文学| 亚洲中文字幕久久久一区| 亚洲精品9999久久久久无码| 亚洲第一成年免费网站| 国产青草亚洲香蕉精品久久| 日韩毛片免费一二三|