DTO與Entity的區別


一.在調用業務方法時,DTO對象數據是由Action生成(可能是用戶輸入的Form數據,也可能是其他情況)
  為了說的清楚簡潔,請允許我舉個例子:
  用戶更新自己的注冊信息,例如修改密碼之類的操作。
  用戶提交頁面-->ActionForm提取Form數據-->構造並對UserDTO賦值-->調用業務方法changePassword(UserDTOdto)把DTO對象傳入業務方法-->業務方法內部把UserDTO轉化為Entity User-->調用UserDAO.update(User)-->DAO調用hibernate進行持久化操作。

 

二.我理解dto是做表示層(展示給用戶)的,而實體是數據對象(表)

  表示層dto的是由多個實體構成,或一個實體的一個部分,或多個實體的各個部分的結合體?如果你認為dto沒有必要,難道你做數據庫的時候,表與頁面的展示是一摸一樣的嗎?不太現實吧。
  dto是面向對象的,實體是面向關系數據庫的。

三.DTO data transfer object
  數據傳輸對象,這個對象封裝你需要傳輸的數據 在M,V,C這三個層傳遞

 

四.dto其實就是簡單的JAVABEAN,實現Serializable借口,可以在網絡間傳輸
  dto是為了解決entity bean可能很龐大,影響網絡傳輸性能而產生的一種想法
  比如entity bean印射到一個表字段很多,但實際使用中可能只要取得幾個值,比如ID等什么的,那么就定義一個class(類),這個class在服務器端,調用entity的local接口,或直接用jdbc操作表,所以不會對網絡傳輸產生不利,然后網絡傳輸這個class給客戶端(可序列化),減小了網絡傳輸。


免責聲明!

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



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