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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java 数据对象_java的几种对象(PO,VO,DAO,BO,POJO)

發(fā)布時(shí)間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 数据对象_java的几种对象(PO,VO,DAO,BO,POJO) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、PO

persistant object 持久對(duì)象,可以看成是與數(shù)據(jù)庫(kù)中的表相映射的java對(duì)象。最簡(jiǎn)單的PO就是對(duì)應(yīng)數(shù)據(jù)庫(kù)中某個(gè)表中的一條記錄,多個(gè)記錄可以用PO的集合。PO中應(yīng)該不包含任何對(duì)數(shù)據(jù)庫(kù)的操作。生命周期和數(shù)據(jù)庫(kù)密切相關(guān).在向數(shù)據(jù)庫(kù)插入記錄時(shí)創(chuàng)建該實(shí)體,刪除或關(guān)閉數(shù)據(jù)庫(kù)時(shí)該實(shí)體隨之消亡.很多優(yōu)秀的開源框架都實(shí)現(xiàn)了將數(shù)據(jù)庫(kù)中的PO通過ORM用POJO來實(shí)際操作,如Hibernate,JDO等

二、VO

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

三、DAO

data access object 數(shù)據(jù)訪問對(duì)象,此對(duì)象用于訪問數(shù)據(jù)庫(kù)。通常和PO結(jié)合使用,DAO中包含了各種數(shù)據(jù)庫(kù)的操作方法。通過它的方法,結(jié)合PO對(duì)數(shù)據(jù)庫(kù)進(jìn)行相關(guān)的操作。

四、BO

business object 業(yè)務(wù)對(duì)象,封裝業(yè)務(wù)邏輯的java對(duì)象,通過調(diào)用DAO方法,結(jié)合PO,VO進(jìn)行業(yè)務(wù)操作。

五、POJO

plain ordinary java object 簡(jiǎn)單無規(guī)則java對(duì)象,指那些沒有從任何類繼承、也沒有實(shí)現(xiàn)任何接口,更沒有被其它框架侵入的java對(duì)象,VO和PO應(yīng)該都屬于它。

POJO的意義:  POJO讓開發(fā)者可專注于業(yè)務(wù)邏輯和脫離框架的單元測(cè)試。除此之外, 由于POJO并不須要繼承框架的類或?qū)崿F(xiàn)其接口,開發(fā)者能夠極其靈活地搭建繼承結(jié)構(gòu)和建造應(yīng)用。

POJO的意義就在于它的簡(jiǎn)單而靈活性,因?yàn)樗暮?jiǎn)單和靈活,使得POJO能夠任意擴(kuò)展,從而勝任多個(gè)場(chǎng)合,也就讓一個(gè)模型貫穿多個(gè)層成為現(xiàn)實(shí)。

先寫一個(gè)核心POJO,然后實(shí)現(xiàn)業(yè)務(wù)邏輯接口和持久化接口,就成了Domain Model; UI需要使用時(shí),就實(shí)現(xiàn)數(shù)據(jù)綁定接口,變成VO(View Object)。

POJO的擴(kuò)展:  POJO僅包含最簡(jiǎn)單的字段屬性,沒有多余的東西,它本質(zhì)上就是一個(gè)普通的JavaBean。

但是在POJO的基礎(chǔ)上,能夠擴(kuò)展出不同的對(duì)象。

為POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就變成了PO。

為POJO增加了數(shù)據(jù)綁定功能之后,POJO就變成了View Object,即UI Model。

為POJO增加業(yè)務(wù)邏輯的方法(比如單據(jù)審核、轉(zhuǎn)帳……)之后,POJO就變成了Domain Model。

POJO還可以當(dāng)作DTO使用。

POJO和JavaBean是我們常見的兩個(gè)關(guān)鍵字,一般容易混淆。

JavaBean 是一種JAVA語言寫成的可重用組件。它的方法命名,構(gòu)造及行為必須符合特定的約定:

這個(gè)類必須有一個(gè)公共的缺省構(gòu)造函數(shù)。

這個(gè)類的屬性使用getter和setter來訪問,其他方法遵從標(biāo)準(zhǔn)命名規(guī)范。

這個(gè)類應(yīng)是可序列化的。

因?yàn)檫@些要求主要是靠約定而不是靠實(shí)現(xiàn)接口,所以許多開發(fā)者把JavaBean看作遵從特定命名約定的POJO。

簡(jiǎn)而言之,當(dāng)一個(gè)Pojo可序列化,有一個(gè)無參的構(gòu)造函數(shù),使用getter和setter方法來訪問屬性時(shí),他就是一個(gè)JavaBean。

JavaBean是Java類,同時(shí)它也具有自己的一些特征:

1、 JavaBean是一個(gè)public的類

2、 JavaBean有一個(gè)不帶參數(shù)的構(gòu)造方法

3、 JavaBean中的屬性通過getXXX()和setXXX()進(jìn)行操作

基于java語言的,因此javabean不依賴平臺(tái)

O/R Mapping 是Object Relational Mapping(對(duì)象關(guān)系映射)的縮寫。通俗點(diǎn)講,就是將對(duì)象與關(guān)系數(shù)據(jù)庫(kù)綁定,用對(duì)象來表示關(guān)系數(shù)據(jù)。在O/R Mapping的世界里,有兩個(gè)基本的也是重要的東東需要了解,即VO,PO。VO,值對(duì)象(Value Object),PO,持久對(duì)象(Persisent Object),它們是由一組屬性和屬性的get和set方法組成。從結(jié)構(gòu)上看,它們并沒有什么不同的地方。但從其意義和本質(zhì)上來看是完全不同的。

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

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

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

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

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

總結(jié)

以上是生活随笔為你收集整理的java 数据对象_java的几种对象(PO,VO,DAO,BO,POJO)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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