DAO模式 - 以Java為例
之前大概知道DAO是什麼,有實作了「被操作的Class」和「與資料庫存取的Class」,但未能將「與資料庫存取的Class」分出一個介面。沒再細究是因考量當時公司技術需求而做個半套。
因而這次想再好好了解DAO,重點整理如下:
因而這次想再好好了解DAO,重點整理如下:
實作DAO一般可分為:
1. 要被操作的物件(通常是指一個DB table中去get或set其欄位的物件)
e.g. User Class中有getName(){}和setName(){}
2. 與DB存取所有相關操作的介面
e.g. UserDAO interface中有getConnection()和insert()
3. 實作介面的類別
e.g. UserDAOImpl去實作UserDAO interface,實作了getConnection()和insert()細節
DAO是什麼?可用來做什麼?
- DAO是夾在商業邏輯與資料庫資源間的一層設計。
- DAO能封裝Data Source,比如將MySQL換成MSSQL時,只需變換連線的字串等等。
- DAO也封裝對DB的CRUD操作。對需要取資料的人來說,只需要知道有insertUser(User user),而詳細實作細節則寫在DAO中。
此連結是Spring中的DAO,但本人沒用過Java相關的framework,所以先看看做個參考:
此連結可參考其範例部分如何寫的,能更理解DAO如何被實現:
此連結是覺得將DAO說得較好的:
留言
張貼留言