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層處理業務邏輯,並返回響應。