<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)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成人77777网站| 国产区卡一卡二卡三乱码免费| 亚洲成a人片在线观看久| 亚洲AV日韩综合一区尤物| 免费AA片少妇人AA片直播| 亚洲午夜电影在线观看高清| 99无码人妻一区二区三区免费| 亚洲图片校园春色| 中文字幕无码成人免费视频| 亚洲日韩av无码中文| 国产精品免费视频一区| 理论片在线观看免费| 精品国产亚洲男女在线线电影| 成av免费大片黄在线观看| 亚洲avav天堂av在线不卡| 1000部拍拍拍18勿入免费视频软件| 亚洲女人18毛片水真多| 在线a毛片免费视频观看| 曰批全过程免费视频免费看| MM131亚洲国产美女久久| 久久免费福利视频| 亚洲二区在线视频| 一级毛片直播亚洲| 免费萌白酱国产一区二区三区| 亚洲今日精彩视频| 成人免费无码视频在线网站| 粉色视频成年免费人15次| 亚洲精品无码av人在线观看| 91久久精品国产免费直播| 亚洲妇女无套内射精| 综合亚洲伊人午夜网| 免费观看激色视频网站bd| 九九精品国产亚洲AV日韩| 亚洲男人的天堂www| 搡女人真爽免费视频大全| 四虎成人精品国产永久免费无码| 一区二区3区免费视频| 久久久亚洲欧洲日产国码农村| 免费a级毛片无码a∨蜜芽试看| sss日本免费完整版在线观看| 久久精品国产亚洲av水果派|