Entity主要用於ORM(對象關係映射)框架中,如Hibernate、MyBatis等,以便將資料庫中的數據映射為對象,方便進行業務操作。 Entity通常與資料庫表一一對應,代表業務數據的基本單元。 通常放在項目的model或entity包下。 DAO(數據訪問對象):DAO是連接業務邏輯和數據 ...
Entity主要用於ORM(對象關係映射)框架中,如Hibernate、MyBatis等,以便將資料庫中的數據映射為對象,方便進行業務操作。
- Entity通常與資料庫表一一對應,代表業務數據的基本單元。
- 通常放在項目的model或entity包下。
DAO(數據訪問對象):
DAO是連接業務邏輯和資料庫的橋梁,負責執行資料庫操作(CRUD)。
使用MyBatis、Hibernate等ORM框架實現時,每個Entity通常對應一個DAO。
通常放在項目的dao或repository包下。
DO(Data Object)是一個更廣泛的概念,它指的是用於在應用程式中傳輸數據的對象。DO可以是Entity,也可以是其他專門用於數據傳輸的類。它的主要目的是在不同的層或組件之間傳遞數據,確保數據的完整性和一致性。
在某些場景下,Entity可能直接用作DO,特別是在簡單的CRUD操作中。但在複雜的業務邏輯或前後端分離的場景中,我們可能會定義專門的DTO(Data Transfer Object)或VO(View Object)來作為數據傳輸的對象,以滿足不同的需求。
DTO(數據傳輸對象):
DTO用於在Service層和Controller層之間傳輸數據,特別是在前後端分離的場景中。
DTO的欄位通常與Entity不完全相同,它根據前端的需求進行定製。
通常放在項目的dto或model包下。
VO(視圖對象):
VO主要用於視圖層(如JSP、Thymeleaf等)的數據展示。
與DTO類似,但更偏向於前端展示,可能包含前端需要的額外欄位或方法。
在前後端分離的場景中,VO的使用可能較少,因為前端通常直接處理DTO或JSON數據。
通常放在項目的vo或model包下。
Service(服務層):
Service層負責業務邏輯的實現,調用DAO層進行數據訪問,並可能調用其他Service。
Controller(控制器):
Controller是MVC架構中的C(Controller),負責接收前端請求,調用Service層處理業務邏輯,並返迴響應。