這個對象的區別曾經真是困擾了我好久,在這裏分享下,希望能夠給大家帶來幫助
項目中關於Entity、VO、DTO的認識和應用、
-
entity 裏的每一個字段,與數據庫相對應,
-
vo 裏的每一個字段,是和你前臺 html 頁面相對應,
-
dto 這是用來轉換從 entity 到 vo,或者從 vo 到 entity 的中間的東西 。(DTO中擁有的字段應該是entity中或者是vo中的一個子集)
舉個例子:
你的html頁面上有三個字段,name,pwd,age
你的數據庫表裏,有兩個字段,name,pwd, 注意沒有 age。
而你的 vo 裏,就應該有下面三個成員變量 ,因爲對應 html 頁面上三個字段 。
private string name;
private string pwd;
private string age;
這個時候,你的 entity 裏,就應該有兩個成員變量 ,因爲對應數據庫表中的 2 個字段 。
private string name;
private string pwd;
到了這裏,做這樣一個業務“年齡大於 25 的才能存入數據庫,這個時候,你就要用到 dto 了
-
你要先從頁面上拿到 vo,然後判斷 vo 中的 age 是不是大於 25 。
-
如果大於 25 ,就把 vo 中的 name 和 pwd拿出來,放到 dto 中。
-
然後在把 dto 中的 name 和 pwd原封不動的給 entity,然後根據 entity 的值,在傳入數據庫。
這就是他們三個的區別。
PS: dto 和 entity 裏面的字段應該是一樣的,dto 只是 entity 到 vo,或者 vo 到 entity 的中間過程,如果沒有這個過程,你仍然可以做到增刪改查,這是根據具體公司規範來的 。