国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

對多種對象的簡單解析:PO/VO/DTO/DAO的區別(轉)

2019-11-09 19:18:42
字體:
來源:轉載
供稿:網友

PO :persistent object持久對象 

1 .有時也被稱為Data對象,對應數據庫中的entity,可以簡單認為一個PO對應數據庫中的一條記錄。 2 .在hibernate持久化框架中與insert/delet操作密切相關。 3 .PO中不應該包含任何對數據庫的操作。 --------------------------------------------------------- POJO :plain ordinary java object 無規則簡單java對象 一個中間對象,可以轉化為PO、DTO、VO。 1 .POJO持久化之后==〉PO (在運行期,由Hibernate中的cglib動態把POJO轉換為PO,PO相對于POJO會增加一些用來管理數據庫entity狀態的屬性和方法。PO對于PRogrammer來說完全透明,由于是運行期生成PO,所以可以支持增量編譯,增量調試。) 2 .POJO傳輸過程中==〉DTO 3 .POJO用作表示層==〉VO PO 和VO都應該屬于它。 ---------------------------------------------------------- BO :business object 業務對象 封裝業務邏輯為一個對象(可以包括多個PO,通常需要將BO轉化成PO,才能進行數據的持久化,反之,從DB中得到的PO,需要轉化成BO才能在業務層使用)。 關于BO主要有三種概念 1 、只包含業務對象的屬性; 2 、只包含業務方法; 3 、兩者都包含。 在實際使用中,認為哪一種概念正確并不重要,關鍵是實際應用中適合自己項目的需要。 ---------------------------------------------------------- VO :value object值對象 / view object表現層對象 1 .主要對應頁面顯示(web頁面/swt、swing界面)的數據對象。 2 .可以和表對應,也可以不,這根據業務的需要。 注 :在struts中,用ActionForm做VO,需要做一個轉換,因為PO是面向對象的,而ActionForm是和view對應的,要將幾個PO要顯示的屬性合成一個ActionForm,可以使用BeanUtils的copy方法。 ---------------------------------------------------------- DTO (TO) :Data Transfer Object數據傳輸對象 1 .用在需要跨進程或遠程傳輸時,它不應該包含業務邏輯。 2 .比如一張表有100個字段,那么對應的PO就有100個屬性(大多數情況下,DTO 內的數據來自多個表)。但view層只需顯示10個字段,沒有必要把整個PO對象傳遞到client,這時我們就可以用只有這10個屬性的DTO來傳輸數據到client,這樣也不會暴露server端表結構。到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO。 ---------------------------------------------------------- DAO :data access object數據訪問對象 1 .主要用來封裝對DB的訪問(CRUD操作)。 2 .通過接收Business層的數據,把POJO持久化為PO。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 康保县| 封丘县| 介休市| 错那县| 任丘市| 深水埗区| 屏东县| 舒城县| 合作市| 永胜县| 黄骅市| 积石山| 尼勒克县| 灵山县| 三台县| 伊春市| 浑源县| 桃源县| 德清县| 岑溪市| 阳山县| 青川县| 江源县| 墨脱县| 彭山县| 独山县| 柯坪县| 黄大仙区| 互助| 南部县| 长兴县| 藁城市| 临沧市| 长沙县| 清河县| 招远市| 安达市| 红原县| 长沙市| 望城县| 沽源县|