java 的幾種對象 (PO,VO,DAO,BO,POJO) 解釋

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

?一、PO:persistant object 持久對象,可以看成是與數據庫中的表相映射的java對象。最簡單的PO就是對應數據庫中某個表中的一條記錄,多個記錄可以用PO的集合。PO中應該不包含任何對數據庫的操作。

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

???三、DAO:data access object 數據訪問對象,此對象用于訪問數據庫。通常和PO結合使用,DAO中包含了各種數據庫的操作方法。通過它的方法,結合PO對數據庫進行相關的操作。

???四、BO:business object 業務對象,封裝業務邏輯的java對象,通過調用DAO方法,結合PO,VO進行業務操作。

???五、POJO:plain ordinary java object 簡單無規則java對象,我個人覺得它和其他不是一個層面上的東西,VO和PO應該都屬于它.

?

PO:
persistant object持久對象
最形象的理解就是一個PO就是數據庫中的一條記錄。
好處是可以把一條記錄作為一個對象處理,可以方便的轉為其它對象。


BO:
business object業務對象
主要作用是把業務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。
比如一個簡歷,有教育經歷、工作經歷、??關系等等。
我們可以把教育經歷對應一個PO,工作經歷對應一個PO,??關系對應一個PO。
建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。
這樣處理業務邏輯時,我們就可以針對BO去處理。


VO :
value object值對象
ViewObject表現層對象
主要對應界面顯示的數據對象。對于一個WEB頁面,或者SWT、SWING的一個界面,用一個VO對象對應整個界面的值。

DTO :
Data Transfer Object數據傳輸對象
主要用于遠程調用等需要大量傳輸對象的地方。
比如我們一張表有100個字段,那么對應的PO就有100個屬性。
但是我們界面上只要顯示10個字段,
客戶端用WEB service來獲取數據,沒有必要把整個PO對象傳遞到客戶端,
這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO


POJO :
plain ordinary java object 簡單java對象
個人感覺POJO是最常見最多變的對象,是一個中間對象,也是我們最常打交道的對象。
一個POJO持久化以后就是PO
直接用它傳遞、傳遞過程中就是DTO
直接用來對應表示層就是VO


DAO:
data access object數據訪問對象
這個大家最熟悉,和上面幾個O區別最大,基本沒有互相轉化的可能性和必要.
主要用來封裝對數據庫的訪問。通過它可以把POJO持久化為PO,用PO組裝出來VO、DTO

?

轉自:http://blog.sina.com.cn/s/blog_6ec332aa0100yebr.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448723.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448723.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448723.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【隨想】每日兩題Day.22

題目:102. 二叉樹的層序遍歷 給你二叉樹的根節點 root ,返回其節點值的 層序遍歷 。 (即逐層地,從左到右訪問所有節點)。 示例 1: 輸入:root [3,9,20,null,null,15,7] 輸出:[[3],[…

幫助子女成功的十大路徑

美國全國家長協會(National PTA)建議指出:作為家長您對你子女的成功起著非常重要的影響作用,并舉出幫助子女成功的十種路徑。 1、與子女溝通 如果我們盡早地與子女溝通,提供給他們信息與行為準則,獲得子女的信任,在…

shell關閉指定進程

例如要關閉jupyter-notebook這個進程: ps -ef | grep jupyter-notebook | grep -v grep | cut -c 9-15 | xargs kill -9 說明:管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。 “ps -ef” 查看所有進程  …

垃圾回收算法與垃圾回收器

Java與C等語言最大的技術區別:自動化的垃圾回收機制(GC) 為什么要了解GC和內存分配策略 1、面試需要 2、GC對應用的性能是有影響的; 3、寫代碼有好處 棧:棧中的生命周期是跟隨線程,所以一般不需要關注 堆&a…

提高孩子睡眠質量 學業事半功倍

睡眠如同大腦的食物。在睡眠期間,許多重要的身體機能靜靜地發生著作用。省略睡眠是有害的,如果一個嚴重缺覺的人開著車,他會臉色蒼白、喜怒無常、反應遲鈍,可能是致命的危險。缺少睡眠讓青少年很難與人相處,學業表現不…

實體類(VO,DO,DTO)的劃分

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 從領域建模中的實體劃分、項目中的實際應用情況兩個角度,對這幾個概念進行簡析。 得出的主要結論是:在項目應用…

IIS新建站點服務器,localhost能登錄但是IP訪問登錄不了。

IIS服務器新建站點之后,瀏覽頁面,服務器本地是可以登錄,但是localhost換成IP就無法訪問。其他站點IP卻可以訪問。 1.如果瀏覽直接失敗,說明端口號需要更換。 2.如果出現IP不能訪問,localhost能訪問,需要在高…

eclipse問題_Alt+/不給提示,只補充代碼問題的解決方案

今天用eclipse敲代碼的時候遇到的問題 我還以為是沖突什么的 還重新裝了軟件 最后才發現原來是快捷鍵設置的問題 解決方案: 1:打開菜單window→Preferences,然后在窗口的左側樹選擇General->Keys 2:在下圖中的5框的地方輸入“w…

領域驅動設計:淺析 VO、DTO、DO、PO 概念、區別、用處

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 本篇文章主要討論一下我們經常會用到的一些對象:VO、DTO、DO和PO。 由于不同的項目和開發人員有不同的命名習慣&#xff0c…

動腦的生活教育

心理學家華生曾經說過:“如果給我一打孩子,我可以把他們變成律師、醫師、科學家,或是強盜、土匪。”華生認為,教育孩子就如同馬戲團的馴獸師訓練野獸一樣,是“刺激”與“反應”的聯結,不需要任何的“思考”…

前端知識點回顧之重點篇——CORS

CORS(cross origin resource sharing)跨域資源共享 來源:http://www.ruanyifeng.com/blog/2016/04/cors.html 它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。 簡介 CORS需要瀏覽…

案例:隱秘而低調的內存泄露(OOM)

內存泄露測試的整個過程如下:在手機里啟動被測APP并打開DDMS。在DDMS中選中【com.example.android.hcgallery】之后單擊按鈕【show heap updates】,然后切換到標簽頁【VM Heap】,再單擊按鈕【Cause GC】。不斷操作APP,并觀察Heap。…

員工價值——如何體現自己價值,如何被自己的領導認可

到公司工作快三年了,比我后來的同事陸續得到了升職的機會,我卻原地不動,心里頗不是滋味。終于有一天,冒著被解聘的危險,我找到老板理論。 “老板,我有過遲到、早退或亂章違紀的現象嗎?”我問。 …

java: PO,VO,TO,BO,DAO,POJO 解釋

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 O/R Mapping 是 Object Relational Mapping(對象關系映射)的縮寫。通俗點講,就是將對象與關系數據庫綁…

[譯]JavaScript 究竟是如何工作的?(第一部分)

原文地址:How Does JavaScript Really Work? (Part 1)原文作者:Priyesh Patel如果你是一個 JS 開發者或者是正在學習這門語言的學生,很大概率上你會遇到雙字母詞"V8"。在這篇文章中,我將會為你簡述不同的 JS 引擎并深入…

vue實戰(9):總結二

整理前一段所做的工作內容 0.其它 vue實戰(1):準備與資料整理vue實戰(2):初始化項目、搭建底部導航路由vue實戰(3):底部導航顯示、搭建各模塊靜態頁面、添加登錄頁頁面與…

一名IT從業者的英語口語能力成長路徑

這篇文章是我最近十天口語系列文章的合輯,文章比較長,一萬五千余字。但是系統化地歸納了自己十多年的英語尤其是口語方面的學習經歷與總結思考。我不是個純粹的英語專業學生,我甚至不是任何英語相關專業的學生,但是我和英語卻有著…

解決:SpringBoot 錯誤:Caused by: org.yaml.snakeyaml.scanner.ScannerException

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 錯誤: Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next tokenfound character that cannot s…

好程序員前端分享使用JS開發簡單的音樂播放器

好程序員前端分享使用JS開發簡單的音樂播放器,最近,我們在教學生使用JavaScript,今天就帶大家開發一款簡單的音樂播放器。首先,最終效果如圖所示:首先,我們來編寫html界面index.html,代碼如下:&…

學生管理系統stuSystem函數

void stuSystem(){ struct student *head,*stu; int lookup_num; int Delete_num; int Modify_num; char ckeya; int istate0; do { system("cls"); //vc清屏函數&#xff0c;包含在#include<stdlib.h>中 printf(" 歡迎進入學生管理系統&#xff01;\n&q…