上文(設計模式-組合實體模式):
經歷過jsp頁面請求jdbc然將資料庫中的資料直接查出後直接返回給控制器,然後jsp渲染的痛,相信經歷過的都很清楚,這樣的很難維護,而現在流行的mvc模式,其實m分為dao和entity兩層,dao負責與資料庫互動,而entity作為資料模型,很好起到了隔離作用。
資料訪問物件模式(data access object pattern)或 dao 模式用於把低階的資料訪問 api 或操作從高階的業務服務中分離出來。以下是資料訪問物件模式的參與者。角色:資料訪問物件介面(data access object inte***ce):該介面定義了在乙個模型物件上要執行的標準操作。
資料訪問物件實體類(data access object concrete class): 該類實現了上述的介面。該類負責從資料來源獲取資料,資料來源可以是資料庫,也可以是 xml,或者是其他的儲存機制。
模型物件/數值物件(model object/value object):該物件是簡單的 pojo,包含了 get/set 方法來儲存通過使用 dao 類檢索到的資料。
優點:
隔離資料層:由於新增了dao層,不會影響到服務或者實體物件與資料庫互動發生錯誤會在該層進行異常丟擲。
缺點:
**量增加:當然增加一層需要增加相應的**,不過該缺點可以忽略,可以使層次更清晰嘛。
主要解決jsp時代的乙個痛點,層次更清晰,並且各層職責明確,dao就是與資料互動而產生的。
個人理解:
資料訪問物件模式就是mvc中的dao層,主要與資料庫互動。
資料訪問物件模式類圖
* * 功能描述:學生
* * @param:
* @return:
* @auther: csh
* @date: 2020/6/28 10:29
*/public class student
public string getname()
public void setname(string name)
public int getrollno()
public void setrollno(int rollno)
}
/**
* * 功能描述:介面
* * @param:
* @return:
* @auther: csh
* @date: 2020/6/28 10:29
*/public inte***ce studentdao
/**
* * 功能描述:學生介面實現
* * @param:
* @return:
* @auther: csh
* @date: 2020/6/28 10:30
*/public class studentdaoimpl implements studentdao
@override
public void deletestudent(student student)
//從資料庫中檢索學生名單
@override
public listgetallstudents()
@override
public student getstudent(int rollno)
@override
public void updatestudent(student student)
}
/**
* @auther: csh
* @date: 2020/6/28 10:31
* @description: 通過
*/public class client
//更新學生資訊
student student = studentdao.getallstudents().get(0);
student.setname("hong");
studentdao.updatestudent(student);
//獲取學生資訊
student now = studentdao.getallstudents().get(0);
system.out.println("姓名:"+now.getname()+"學號:"+now.getrollno());}}
學生【學號:0姓名:robert】
學生【學號:1姓名:john】
student: roll no 0, updated in the database
姓名:hong學號:0
資料訪問物件模式,就是現在在model層再分一層dao直接與資料庫互動,這樣的話一但發現錯誤,不會影響到服務或實體,並且該層在各大框如mvc或者spring boot以及各大企業中都會用到,基本mvc都會有乙個dao層,用來作為與資料庫互動一層。在測試中可以直接避開業務邏輯層直接用dao層進行單元測試。 PHP設計模式 資料訪問物件模式
資料訪問物件模式描述了如何建立透明訪問資料來源的物件。應用場景 設計乙個basedao基類,實現資料庫操作基本的一些query,insert,update方法 在實際使用的過程中,繼承basedao,就可以直接呼叫基類的資料庫操作方法 資料訪問物件 data access object 示例 cre...
PHP設計模式系列 資料訪問物件模式
資料訪問物件模式描述了如何建立透明訪問資料來源的物件。設計乙個basedao基類,實現資料庫操作基本的一些query,insert,update方法 在實際使用的過程中,繼承basedao,就可以直接呼叫基類的資料庫操作方法 php view plain copy print?資料訪問物件模式 將資...
PHP設計模式系列 資料訪問物件模式
資料訪問物件模式描述了如何建立透明訪問資料來源的物件。設計乙個basedao基類,實現資料庫操作基本的一些query,insert,update方法 在實際使用的過程中,繼承basedao,就可以直接呼叫基類的資料庫操作方法 資料訪問物件模式 將資料庫訪問層脫離出來 作為公用的訪問介面,方便使用者開...