DAO模式 - 以Java為例

之前大概知道DAO是什麼,有實作了「被操作的Class」和「與資料庫存取的Class」,但未能將「與資料庫存取的Class」分出一個介面。沒再細究是因考量當時公司技術需求而做個半套。

因而這次想再好好了解DAO,重點整理如下:


實作DAO一般可分為:

1. 要被操作的物件(通常是指一個DB table中去getset其欄位的物件)

    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也封裝對DBCRUD操作。對需要取資料的人來說,只需要知道有insertUser(User user),而詳細實作細節則寫在DAO中。


此連結是Spring中的DAO,但本人沒用過Java相關的framework,所以先看看做個參考:

此連結可參考其範例部分如何寫的,能更理解DAO如何被實現:

此連結是覺得將DAO說得較好的:

留言

熱門文章