PO/POJO/BO/DTO/VO/DAO的區別
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。
總而言之,這些縮寫都是在不同的場景下,根據需要對全部資料或一部分資料進行拆分、組合再封裝後的結果。
相關文章
- 詳述 PO VO BO DTO DAO 和 POJO 的概念及區別POJO
- 概念POJO、DTO、DAO、PO、BO、VO、ENTITY詳解POJO
- Java中PO、DO、TO、DTO、 VO、 BO、POJO 、DAO的概念JavaPOJO
- Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念JavaPOJO
- java的幾種物件(PO,VO,DAO,BO,POJO,DTO)解釋Java物件POJO
- java的(PO,VO,TO,BO,DAO,POJO)解釋JavaPOJO
- vo bo dto pojo(entity)POJO
- Java開發中的幾種物件的說明(PO,VO,DTO,BO,POJO,DAO,SAO等)Java物件POJO
- Java | DO / DTO / BO / VO的區別Java
- DO、DTO、BO、AO、VO、POJO定義規範POJO
- 專案中DO、PO、BO,DTO、VO的概念與意義
- JAVA進階:VO(DTO)與PO(DAO)之間的轉換Java
- 淺析VO、DTO、DO、PO的概念、區別和用處
- javabean:VO和POJO的區別?JavaBeanPOJO
- 一款 IDEA 外掛幫你優雅轉化 DTO、VO、BO、PO、DOIdea
- VO/DTO/DO/PO通俗的解釋加上自己的理解
- 轉載:領域模型中的實體類分為四種型別:VO、DTO、DO、PO模型型別
- VO(檢視模型) 與 DTO(資料傳輸物件)的區別模型物件
- DTO轉VO工具
- session bean + dao +vo ???SessionBean
- 後端開發基礎概念 Entity,DAO,DO,DTO,VO, Service,Controller後端Controller
- PO,VO 之懶載入疑問
- SLSB+BO+DAO+Hibernate部署打包的問題
- Java(3)-POJO和Java bean的區別是什麼JavaPOJOBean
- DAO和Repository有什麼區別
- 使用IDEA+groovy快速生成entity、dto、dao、service、serviceImplIdea
- MVC下的DAO介面類和SERVICE介面類區別?MVC
- 關於對於Java中Entity以及VO,以及DTO中Request物件序列化的學習Java物件
- 整個小東西,在IDEA中自動生成PO、DAO、MapperIdeaAPP
- 解放雙手,自動生成“x.set(y.get)”,搞定vo2dto轉換
- SAP Cloud for Customer裡BusinessPartner, Customer和Employee這些BO的區別Cloud
- 我寫了個IDEA開源外掛,vo2dto 一鍵生成物件轉換Idea物件
- 區塊鏈安全————DAO攻擊事件解析區塊鏈事件
- LomBok簡化POJOLombokPOJO
- Value Object 和 POJOObjectPOJO
- Don’t repeat the DAO!--使用Hibernate和Spring AOP購建一個範型型別安全的DAOSpring型別
- dto= Presentation Model?
- Free Item in PO