dto和entity的區別?
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給客戶端(可序列化),減小了網絡傳輸。