JAVA搞不清楚系列 - POJO, PO, DTO, DAO, BO, VO
大二之後再也沒碰過Java,許多觀念也都已經忘光光
開始工作後這些東西通通回來找我了
如此看來還有許多我搞不清楚的東西呢
這篇記錄了一些在Java專案中必須知道的基本知識
POJO (Plain Old Java Object)
POJO就是一個Java物件只包含自己的屬性(private)和提取或儲存這些屬性的method(get、set),而其他的Object也是以POJO為基準開始延伸。
PO (Persistent Object) = Entity
資料庫的table所對應的java物件,通常與使用hibernate相關。除了get, set沒有其他方法
Spring Boot JAP有一個套件叫做Lombok,可以替我們省去寫getter and setter的功夫,只需要加上Annotation @Getter @Setter 即可
可參考:https://ithelp.ithome.com.tw/articles/10238653
DTO (Data Transfer Object)
用來傳輸的物件,只會把需要被傳輸出去的資料包裝起來
DAO (Data Access Object)
用於ORM將資料從資料庫中提取的邏輯物件,主要包含提取資料庫的資料並包裝成PO(就是跟SQL有關的邏輯都會在這,像是查詢或是新增資料等)
BO (Business Object)
跟業務相關的邏輯,為PO的組合
VO (Value Object)
可省略只用DTO
資料包裝,對應資料庫的屬性或是包含多個PO組成一個較複雜的資料物件-> 簡單來說就是展示用的資料
如在DTO中定義為:
1 | { |
而年紀不須完整的被展現出來,只需展示出一個範圍,則VO會定義成:
1 | { |
用一張圖來解釋的話就是這樣:
Reference
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
GitalkUtterances