史上最全总结!Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析
文章目錄
- 前言
- 工具類層
- Util
- 數據層
- POJO對象
- domain
- entity
- model
- view
- DTO
- 總結
- 數據訪問層
- DAO
- mapper
- 業(yè)務層
- service
- 控制層
- Controller
前言
做開發(fā)項目時,總會遇到這些包,理清他們的層次,非常有助于我們對于項目的理解和建立。
現階段CSDN上貌似沒有很系統,很詳細的關于層級類的解釋。因此總結了一下自己的經驗和思考,也算是小小的回饋一下一直幫助自己的CSDN。
工具類層
Util
util = 工具
顧明思義,util層就是存放工具類的地方,對于一些獨立性很高的小功能,或重復性很高的代碼片段,可以提取出來放到Util層中。
數據層
POJO對象
POJO = plain ordinary Java object = 普通Java對象
PO:持久對象,與數據庫中的表相映射的Java對象
VO:業(yè)務層之間數據傳遞的對象
POJO:簡單無規(guī)則Java對象,只有屬性+get+set方法
下面要講的這幾個包,本質上都是POJO類
domain
domain = 域
域是一個大范圍,如簡歷域包括工作經驗表、項目經驗表、簡歷基本信息表。 在domain包中,就可以定義一個大的簡歷對象,將三個表的內容整合在一個對象中,作為整體操作。
entity
entity = 實體
嚴格和數據庫相對應,數據庫中有什么字段,entity包中的類就有什么字段。因此當操作表時,操作這個類即可。
比如user表中有name、id、age,則entity包中對應的同名類也只有這三個同名屬性。
model
Model = 模型
當用model當包名時,一般里面存的是實體類的模型,是用來給后端用的。
比如user表中有name、id、age,出于安全原因,我們需要把用戶的密碼定義在另一表中,即user_passwd表,但進行相關操作時,我們往往需要將兩個表關聯使用,每次定義都很麻煩。
因此可以在model層中定義user_model類,將user表中的信息與user_passwd表中的信息整合成一張綜合表,這樣在進行操作時只需調用綜合表,就可以完成對兩個表的關聯操作
view
view = 視圖
當用view當包名時,一般里面存放的是對實體表的映射類(視圖類),是用來給前端用的。
即:有時候我們僅僅需要獲得某一個表的幾個字段,所以此時可以用view存儲這幾個字段。
比如user表中有name、id、age,出于某些原因,我們只需要向用戶展示name和id值,但進行相關操作時,我們往往需要對user表進行很復雜讀處理,每次定義都很麻煩。
因此可以在view層中定義user_view類,將user表中的name、id存入user_view視圖,這樣在進行操作時只需調用視圖表,就可以完成相對應的操作
DTO
DTO = Data Transfer Object = 數據傳輸對象,與view的用法相同,不過是叫法不同
總結
-
如果想對幾個表綜合操作,就用domain
-
如果是嚴格對數據庫表操作,就用entity
-
如果想顯示某個幾個表的綜合信息,就用model,注意model包一般放在service層。
-
如果只想展示某個表中的幾段信息,就用view,注意view包一般放在controller層
-
上述包中的類都屬于POJO類。
數據訪問層
DAO
主要針對于數據表的操作,可以理解為一張數據表,就有一個DAO與之對應,與數據庫的操作,增刪改查等方法
舉例:對于user類,其對應的dao包就是對user表中數據的增刪改查方法。
mapper
mapper層 = dao層,若使用mybatis框架,則其生成的類名字是mapper,其實就是dao層。
業(yè)務層
service
由于Dao里面存放了對表操作的方法,entity類中存放了映射表的POJO類。
Service的作用就是將Dao和entity類整合起來,進行再次封裝,封裝成一個方法,我們調用這個方法,就實現了對某個表的增刪改查操作。
控制層
Controller
負責請求轉發(fā),接受頁面?zhèn)鬟f過來的參數,根據參數的不同,是調用不同的Service層方法進行操作,操作完成后將返回結果傳遞給頁面。
喜歡就點個贊吧!
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的史上最全总结!Util、POJO、domain、entity、model、DAO、DTO、view、mapper、service、controller的作用和区别分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 入门响应式Web?看懂这篇文章就够了!—
- 下一篇: 【面试必备!Mac版本】一文打通Git教