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

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

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

    VO ,PO ,BO,QO, DAO ,POJO,概念

    VO PO BO QO, DAO ,POJO,

    ?

    O/R Mapping Object Relational
    Mapping
    (對象關(guān)系映射)的縮寫。通俗點(diǎn)講,就是將對象與關(guān)系數(shù)據(jù)庫綁定,用對象來表示關(guān)系數(shù)據(jù)。在 O/R
    Mapping
    的世界里,有兩個基本的也是重要的東東需要了解,即 VO PO

    VO ,值對象 (Value Object)

    PO ,持久對象 (Persisent
    Object)
    ,它們是由一組屬性和屬性的 get set 方法組成。從結(jié)構(gòu)上看,它們并沒有什么不同的地方。但從其意義和本質(zhì)上來看是完全不同的。

    1. VO 是用 new 關(guān)鍵字創(chuàng)建,由 GC 回收的。
       PO 則是向數(shù)據(jù)庫中添加新數(shù)據(jù)時創(chuàng)建,刪除數(shù)據(jù)庫中數(shù)據(jù)時削除的。并且它只能存活在一個數(shù)據(jù)庫連接中,斷開連接即被銷毀。


    2. VO 是值對象,精確點(diǎn)講它是業(yè)務(wù)對象,是存活在業(yè)務(wù)層的,是業(yè)務(wù)邏輯使用的,它存活的目的就是為數(shù)據(jù)提供一個生存的地方。

       PO 則是有狀態(tài)的,每個屬性代表其當(dāng)前的狀態(tài)。它是物理數(shù)據(jù)的對象表示。使用它,可以使我們的程序與物理數(shù)據(jù)解耦,并且可以簡化對象數(shù)據(jù)與物理數(shù)據(jù)之間的轉(zhuǎn)換。

    3. VO 的屬性是根據(jù)當(dāng)前業(yè)務(wù)的不同而不同的,也就是說,它的每一個屬性都一一對應(yīng)當(dāng)前業(yè)務(wù)邏輯所需要的數(shù)據(jù)的名稱。

    PO
    的屬性是跟數(shù)據(jù)庫表的字段一一對應(yīng)的。
    PO
    對象需要實(shí)現(xiàn)序列化接口。
    -------------------------------------------------

    java (PO,VO,TO,BO,DAO,POJO) 解釋

    PO(persistant object)
    持久對象
    o/r 映射的時候出現(xiàn)的概念,如果沒有 o/r 映射,沒有這個概念存在了。通常對應(yīng)數(shù)據(jù)模型 ( 數(shù)據(jù)庫 ), 本身還有部分業(yè)務(wù)邏輯的處理。可以看成是與數(shù)據(jù)庫中的表相映射的 java 對象。最簡單的 PO 就是對應(yīng)數(shù)據(jù)庫中某個表中的一條記錄,多個記錄可以用 PO 的集合。 PO 中應(yīng)該不包含任何對數(shù)據(jù)庫的操作。


    VO(value object)
    值對象
    通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,和 PO 一樣也是僅僅包含數(shù)據(jù)而已。但應(yīng)是抽象出的業(yè)務(wù)對象 , 可以和表對應(yīng) , 也可以不 , 這根據(jù)業(yè)務(wù)的需要 . 個人覺得同 DTO( 數(shù)據(jù)傳輸對象 ), web 上傳遞。

    TO(Transfer Object)
    ,數(shù)據(jù)傳輸對象
    在應(yīng)用程序不同 tie( 關(guān)系 ) 之間傳輸?shù)膶ο?/span>

    BO(business object)
    業(yè)務(wù)對象
    從業(yè)務(wù)模型的角度看 , UML 元件領(lǐng)域模型中的領(lǐng)域?qū)ο蟆7庋b業(yè)務(wù)邏輯的 java 對象 , 通過調(diào)用 DAO 方法 , 結(jié)合 PO,VO 進(jìn)行業(yè)務(wù)操作。
    business object:
    業(yè)務(wù)對象
    主要作用是把業(yè)務(wù)邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。
    比如一個簡歷,有教育經(jīng)歷、工作經(jīng)歷、社會關(guān)系等等。
    我們可以把教育經(jīng)歷對應(yīng)一個 PO ,工作經(jīng)歷對應(yīng)一個 PO ,社會關(guān)系對應(yīng)一個 PO
    建立一個對應(yīng)簡歷的 BO 對象處理簡歷,每個 BO 包含這些 PO
    這樣處理業(yè)務(wù)邏輯時,我們就可以針對 BO 去處理。

    QO
    :查詢對象

    POJO(plain ordinary java object)
    簡單無規(guī)則 java 對象
    純的傳統(tǒng)意義的 java 對象。就是說在一些 Object/Relation
    Mapping
    工具中,能夠做到維護(hù)數(shù)據(jù)庫表記錄的 persisent
    object
    完全是一個符合 Java Bean 規(guī)范的純 Java 對象,沒有增加別的屬性和方法。我的理解就是最基本的 Java Bean ,只有屬性字段及 setter getter 方法!。

    DAO(data access object)
    數(shù)據(jù)訪問對象
    是一個 sun 的一個標(biāo)準(zhǔn) j2ee 設(shè)計(jì)模式, 這個模式中有個接口就是 DAO ,它負(fù)持久層的操作。為業(yè)務(wù)層提供接口。此對象用于訪問數(shù)據(jù)庫。通常和 PO 結(jié)合使用, DAO 中包含了各種數(shù)據(jù)庫的操作方法。通過它的方法 , 結(jié)合 PO 對數(shù)據(jù)庫進(jìn)行相關(guān)的操作。夾在業(yè)務(wù)邏輯與數(shù)據(jù)庫資源中間。配合 VO,
    提供數(shù)據(jù)庫的 CRUD 操作 ...

    ?

    ?

    DTO
    Data Transfer Object
    數(shù)據(jù)傳輸對象
    主要用于遠(yuǎn)程調(diào)用等需要大量傳輸對象的地方。
    比如我們一張表有 100 個字段,那么對應(yīng)的 PO 就有 100 個屬性。
    但是我們界面上只要顯示 10 個字段,
    客戶端用 WEB service 來獲取數(shù)據(jù),沒有必要把整個 PO 對象傳遞到客戶端,
    這時我們就可以用只有這 10 個屬性的 DTO 來傳遞結(jié)果到客戶端,這樣也不會暴露服務(wù)端表結(jié)構(gòu) . 到達(dá)客戶端以后,如果用這個對象來對應(yīng)界面顯示,那此時它的身份就轉(zhuǎn)為 VO

    ?


    DAO
    :數(shù)據(jù)訪問對象 —— 同時還有 DAO 模式
    DTO
    :數(shù)據(jù)傳輸對象 —— 同時還有 DTO 模式

    ?

    ?


    O/R Mapper
    對象 / 關(guān)系 映射
    定義好所有的 mapping 之后,這個 O/R
    Mapper
    可以幫我們做很多的工作。通過這些 mappings, 這個 O/R
    Mapper
    可以生成所有的關(guān)于對象保存,刪除,讀取的 SQL 語句,我們不再需要寫那么多行的 DAL 代碼了。


    實(shí)體 Model( 實(shí)體模式 )
    DAL(
    數(shù)據(jù)訪問層 )
    IDAL(
    接口層 )
    DALFactory(
    類工廠 )
    BLL(
    業(yè)務(wù)邏輯層 )
    BOF???? Business Object Framework??????
    業(yè)務(wù)對象框架
    SOA???? Service Orient Architecture????
    面向服務(wù)的設(shè)計(jì)
    EMF???? Eclipse Model Framework???????
    Eclipse
    建模框架

    posted on 2009-03-28 16:07 luofeng225 閱讀(14016) 評論(1)  編輯  收藏 所屬分類: 未分類

    評論

    # re: VO ,PO ,BO,QO, DAO ,POJO,概念 2015-10-19 10:12 ss

    好  回復(fù)  更多評論   

    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    我曾經(jīng)聽到這么一個故事: 一個年輕的程序員問一個老程序員(一個比較牛逼的公司的CTO) 年輕程序員: 你為什么這么牛X., 就好像沒有你不會的。老程序員: 積累的。年輕程序員: 怎么才能積累到您的程度呢。我每天都在積累。但是似乎都沒有感覺到進(jìn)步。老程序員: 我從20歲開始做到了一件事情,直到今天,而且盡可能地保證不間斷。年輕程序員: 到底是什么? 老程序員: 我每天保證自己有2個小時在學(xué)習(xí)新的東西。

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    收藏夾

    Java Website

    java技術(shù)博客

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成人一区二区三区| 亚洲AV永久无码精品网站在线观看 | 亚洲a∨无码男人的天堂| 一级做a爰片久久毛片免费陪| 亚洲一区二区三区免费观看| 色久悠悠婷婷综合在线亚洲| 美女露隐私全部免费直播| 成人毛片免费视频| 亚洲国产综合在线| 0588影视手机免费看片| 国产偷国产偷亚洲高清人| 国产精品极品美女免费观看| 国产精品亚洲片夜色在线| 亚洲免费综合色在线视频| 亚洲一区二区三区高清视频| 亚洲男人的天堂在线va拉文| 无码的免费不卡毛片视频| 亚洲欧洲日产国码在线观看| 亚洲国产精品日韩| 国产免费AV片在线观看播放| 国产亚洲?V无码?V男人的天堂 | 一级特黄a大片免费| 精品国产亚洲一区二区在线观看| 最好看的中文字幕2019免费| 亚洲狠狠狠一区二区三区| 99re免费99re在线视频手机版| 亚洲人成电影在线天堂| 在线免费观看亚洲| 一个人晚上在线观看的免费视频| 激情综合亚洲色婷婷五月| 亚洲av永久无码精品古装片| 久久久久久夜精品精品免费啦| 青草青草视频2免费观看| 亚洲中文字幕无码一去台湾| 无码乱人伦一区二区亚洲一| 又黄又爽又成人免费视频| 老外毛片免费视频播放| 亚洲国产最大av| 亚洲黄色在线观看视频| 波多野结衣久久高清免费| 一级毛片试看60分钟免费播放|