java EE中使用PO和VO的注意事項


    1、基本定義
  PO(Persistence Object 持久化對象)是直接跟持久層數據庫打交道的java Bean (model,entity,bean等叫法都是可以的),里面除了私有的成員變量之外,就只有其對應的set/get方法,
而且其變量一般跟數據庫表中的列幾乎(除了名字)一樣。
  VO(Value Object 值對象)除了可以跟PO完全一樣的變量,set/get方法之外,還可以有其他的變量,但是不用其跟數據庫打交道,可以把該對象當做無狀態的對象。
    2、為什么要使用VO,而不直接都用PO代替?
  首先PO是持久化類,其屬性的改變很有可能直接導致數據庫中的數據變化,而不知道原因(為什么我的數據庫中的數據變化了?)。引入了VO之后可以很好
的解決類似的問題,甚至會很好的幫你解決頁面(JSP,freemarker,asp,aspx)和控制層的直接便利的交互,而不用擔心其各種屬性的變化會不會導致數據庫中
數據的變化,這對於使用hibernate之后控制其操作數據時出現的持久化、瞬態、脫管都是有很大好處的。
    3、使用VO之后應該注意的問題
  使用VO之后要注意其活動范圍要控制在service層、controller層、展現層中,而不要進入dao層甚至是數據庫(一般也不可能影響到數據庫),同樣的PO也
只能出現在dao層和數據庫(數據庫直接和PO交互),而不能夠出現在service層、controller層、展現層中。
  所以,PO和VO都會出現在service層,而且也會在service中進行適當轉換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM