日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

PO,VO,DAO,BO,POJO之间的区别与解释

發(fā)布時(shí)間:2024/3/13 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PO,VO,DAO,BO,POJO之间的区别与解释 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

VO
value object:值對(duì)象

通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,由new創(chuàng)建,由GC回收。

PO
persistant object:持久層對(duì)象

對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的字段。

VO和PO,都是屬性加上屬性的get和set方法;表面看沒(méi)什么不同,但代表的含義是完全不同的。

DTO
data transfer object:數(shù)據(jù)傳輸對(duì)象。

表里面有十幾個(gè)字段:id,name,gender(M/F),age,conmpanyId(如001)…

頁(yè)面需要展示四個(gè)字段:name,gender(男/女),age,conmpanyName(如今日頭條股份有限公司)。

DTO由此產(chǎn)生,一是能提高數(shù)據(jù)傳輸?shù)乃俣?#xff08;減少了傳輸字段),二能隱藏后端表結(jié)構(gòu)。

BO
business object:業(yè)務(wù)對(duì)象

BO把業(yè)務(wù)邏輯封裝為一個(gè)對(duì)象。

我理解是PO的組合,比如投保人是一個(gè)PO,被保險(xiǎn)人是一個(gè)PO,險(xiǎn)種信息是一個(gè)PO等等,他們組合起來(lái)是第一張保單的BO。

POJO
plain ordinary java object:簡(jiǎn)單無(wú)規(guī)則java對(duì)象

純的傳統(tǒng)意義的java對(duì)象,最基本的Java Bean只有屬性加上屬性的get和set方法。

可以轉(zhuǎn)化為PO、DTO、VO;比如POJO在傳輸過(guò)程中就是DTO。

DAO
data access object:數(shù)據(jù)訪問(wèn)對(duì)象

主要用來(lái)封裝對(duì)數(shù)據(jù)的訪問(wèn),注意,是對(duì)數(shù)據(jù)的訪問(wèn),不是對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。

Java Bean:一種可重用組件,即“一次編寫(xiě),任何地方執(zhí)行,任何地方重用”。滿足三個(gè)條件a.類(lèi)必須是具體的和公共的;b.具有無(wú)參構(gòu)造器;c.提供一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露成員屬性。

PO:持久對(duì)象(Persistent Object)是ORM(Object Relational Mapping)框架中Entity,PO的屬性和數(shù)據(jù)表的字段形成一一對(duì)應(yīng)關(guān)系。

VO:值對(duì)象(Value Object),通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,和PO一樣也是僅僅包含數(shù)據(jù)而已,但應(yīng)是抽象出的業(yè)務(wù)對(duì)象,可以和表對(duì)應(yīng),也可以不是。

BO:業(yè)務(wù)對(duì)象(Business Object),封裝業(yè)務(wù)邏輯,通過(guò)調(diào)用DAO方法,結(jié)合PO或VO進(jìn)行業(yè)務(wù)操作。

DTO:數(shù)據(jù)傳輸對(duì)象(Data Transfer Object),是一種設(shè)計(jì)模式之間傳輸數(shù)據(jù)的軟件應(yīng)用系統(tǒng)。數(shù)據(jù)傳輸目標(biāo)往往是數(shù)據(jù)訪問(wèn)對(duì)象從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。數(shù)據(jù)傳輸對(duì)象與數(shù)據(jù)交互對(duì)象或數(shù)據(jù)訪問(wèn)對(duì)象之間的差異是一個(gè)以不具有任何行為除了存儲(chǔ)和檢索的數(shù)據(jù)(訪問(wèn)和存取器)。簡(jiǎn)單點(diǎn)說(shuō)就是接口之間傳遞的數(shù)據(jù)封裝。

DAO:數(shù)據(jù)訪問(wèn)對(duì)象(Data Access Object)是sun的一個(gè)標(biāo)準(zhǔn)j2ee設(shè)計(jì)模式,這個(gè)模式中有個(gè)接口就是DAO,負(fù)責(zé)持久層的操作。

Entity:實(shí)體,和PO的功能類(lèi)似,和數(shù)據(jù)表一一對(duì)應(yīng),一個(gè)實(shí)體一張表。

其實(shí)這些都是Java對(duì)象,只不過(guò)在項(xiàng)目中用于不同的場(chǎng)合罷了。

總結(jié)

以上是生活随笔為你收集整理的PO,VO,DAO,BO,POJO之间的区别与解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。