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

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

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

    常言笑的家

    Spring, Hibernate, Struts, Ajax, RoR

    POJO、VO、PO、FormBean什么關系

    看了一下Web開發的書,發現了這些詞。讓我很疑惑。這些詞匯什么意思,又有什么關系?

    看了一些文檔之后,對它們的基本概念有了最基礎的認識。

    POJO:Pure Old Java Object,符合Java Bean屬性規范的簡單Java對象,通常也稱為VO(Value Object,值對象)。

    PO:Persistent Object,持久化對象。

    VO、PO、FormBean之間的區別:VO是獨立的Java Object;而PO是Hibernate納入其實體容器(Entity Map)的對象。它代表了與數據庫中某條記錄相對應的Hibernata實體,PO的變化在事務提交時將反映到實際的數據庫中。FormBean只是HTML中表單的封裝,是為了弱化request中存儲數據的作用,將request對象的get()方法轉化為對象的存取值。

    VO和PO在結構上看,沒什么區別。但從本質上看是完全不同的。

    VO由new關鍵字創建,由GC回收。PO則是向數據庫中添加新數據時創建,刪除數據庫中數據時刪除,并且它只能存活在一個數據庫連接中,斷開連接即被銷毀。

    VO是業務對象,由業務邏輯使用,它存活的目的就是為數據提供一個生存的地方。PO則是數據對象的表現,它可以簡化對象數據與物理數據的轉換。

    VO的屬性根據當前的業務不同而不同。PO的屬性則是跟數據庫表的字段一一對應。PO對象需要實現序列化接口。

    在Hibernate中,最核心的概念就是對PO的狀態管理。一個PO有三種狀態:
    1.未被持久化的VO,此時就是一個內存對象VO,由JVM管理生命周期。
    2.已被持久化的PO,并且在Session生命周期內,此時映射數據庫連接,由數據庫管理生命周期。
    3.曾被持久化過,但現在和Session已經托管(detached)了,以VO的身份在運行。它還可以進入另一個Session,繼續PO狀態管理。

    需要注意的是, PO最好只在持久層使用,如果脫離持久層到處使用,會給Hibernate帶來不小的PO對象維護開銷。

    posted on 2007-06-27 15:54 常言笑 閱讀(941) 評論(1)  編輯  收藏 所屬分類: 技術總結

    Feedback

    # re: POJO、VO、PO、FormBean什么關系 2009-09-09 17:08 kospon

    經典  回復  更多評論   


    My Links

    Blog Stats

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费看大美女大黄大色| 无码国产精品一区二区免费I6 | 男男gay做爽爽免费视频| 成人一a毛片免费视频| 亚洲五月综合网色九月色| 成年性午夜免费视频网站不卡| 亚洲欧洲国产经精品香蕉网| 91手机看片国产永久免费| 亚洲国产精品一区二区久| 日本人的色道免费网站| 亚洲综合丁香婷婷六月香| 成人女人A级毛片免费软件| 亚洲夂夂婷婷色拍WW47| 日韩免费无码一区二区视频| 自拍偷自拍亚洲精品播放| 亚洲AⅤ视频一区二区三区| 一个人免费观看日本www视频| 在线亚洲人成电影网站色www | 99在线精品免费视频九九视| 亚洲日韩亚洲另类激情文学| 日本二区免费一片黄2019| 亚洲免费日韩无码系列| 婷婷亚洲综合五月天小说| 国产精品免费精品自在线观看| 亚洲日韩看片无码电影| 亚洲综合色视频在线观看| 114级毛片免费观看| 精品国产日韩亚洲一区在线| 亚洲热妇无码AV在线播放| 亚欧免费视频一区二区三区| 亚洲色最新高清av网站| 久久精品亚洲乱码伦伦中文| 无码成A毛片免费| 亚洲av无码无线在线观看| 亚洲AV一宅男色影视| 免费看的黄色大片| A级毛片高清免费视频在线播放| 亚洲av永久无码精品天堂久久 | 亚洲色图在线观看| 在线观看成人免费视频| 免费无码一区二区三区蜜桃|