數據訪問對象

數據訪問對象

數據訪問對象(Data Access Objects,DAO)DAO是第一個面向對象的接口,它是露丁MerofJet數據岸引擎(《由Miroft Acce 所使用》,並允許VauatBasce安者通過ODBC像直接連線到其他資料庫一樣,直接連線到Aces 表。DAO最適用於單系統應用程式或小範圍本地分布使用DAO是一種應用程式編程接口CAPD,DA 對象封閉了ASS的Je 函式。通過jet函式,它還可以訪問其他的結構化查詢語言(SQL) 資料庫。12EE 開發人員使用數據訪問對象(DAO 設計模式把底層的數據訪問邏輯和高層的高務邏輯分開,實現DAO模式能夠更加專注於編寫數據訪問代碼。

基本介紹

  • 中文名:數據訪問對象
  • 外文名:Data Access Objects
  • 簡寫:DAO 
  • 類別:一個面向對象的接口
介紹,識別資料庫,VisualBasic資料庫,外部資料庫,ODBC資料庫,優點,缺點,

介紹

DAO就是DatabaseAccess Objects,數據訪問對象的英文縮寫。在VB中提供了兩種與Jet資料庫引擎接口的方法:Data控制項和數據訪問對象(DAO)。Data控制項只給出有限的不需編程而能訪問現存資料庫的功能,而DAO模型則是全面控制資料庫的完整編程接口Data控制項將常用的DAO功能封裝在其中,它與DAO控制項的關係就好像記憶體與CACHE之間的關係一樣,所以這兩種方法並不是互斥的,實際上,它們常同時使用。
DAO數據訪問對象(DataAccessObjects)是一種面向對象的界面接口。通過DAO/Jet功能可以訪問ISAM資料庫,使用DAO/ODBCDirect功能可以實現遠程RDO功能。使用DAO的程式編碼非常簡單,DAO提供豐富的游標(Cursor)類型的結果集和非游標(Cursor-Less)類型的結果集,同DDL(數據描述語言)的功能很類似。現在vb資料庫編程大都使用ADO,很少人還用DAO.
DAO是集合,對象,方法和屬性;它用對象集合來處理資料庫,表,視圖和索引等。使用DAO編程,可以訪問並運算元據庫,管理資料庫的對象和定義資料庫的結構等。
DAO模型是設計關係資料庫系統結構的對象類的集合。它們提供了完成管理一個關係型資料庫系統所需的全部操作的屬性和方法,這其中包括創建資料庫,定義表、欄位和索引,建立表間的關係,定位和查詢資料庫等。
Visual Basic中的資料庫編程就是創建數據訪問對象,這些數據訪問對象對應於被訪問物理資料庫的不同部分,如資料庫、表、欄位和索引等,同時用這些對象的屬性和方法來實現對資料庫的操作,以便在Visual Basic窗體中使用綁定和非綁定控制項來顯示操作結果並接收用戶輸入。

識別資料庫

Visual Basic通過DAO和Jet引擎可以識別三類資料庫:

VisualBasic資料庫

也就是*.MDB資料庫

外部資料庫

它們是使用幾種流行格式的“索引順序訪問方法(ISAM)”資料庫,這些流行格式包括Btrieve、dBASEIII、dBASEIV、Microsoft FoxPro versions2.0和2.5以及Paradox versions 3.x和4.0。在Visual Basic中能夠創建和操作所有以上格式的資料庫。也可以訪問文本檔案資料庫和Microsoft Excel或Lotus1-2-3電子表格

ODBC資料庫

包括符合ODBC標準的客戶/伺服器資料庫,如Microsoft SQL Server。要在Visual Basic中創建真正的客戶/伺服器應用程式,可以使用ODBC Direct直接把命令傳遞給伺服器處理。也就是說Visual Basic還支持其它不使用Jet資料庫引擎的數據訪問方法。數據訪問對象的ODBC Direct模式允許使用同樣的對象模型和語法繞過Jet引擎直接訪問ODBC數據。
由上面的敘述可知,對於編程人員來講,你只須了解DAO的使用,對具體的資料庫系統無須做深入的探討,就可對幾乎任何一種資料庫進行操作,“以不便應萬變”, 而對資料庫檔案自身的物理操作,將由相應的資料庫引擎把數據訪問對象上的這些操作轉換為對資料庫檔案自身的物理操作,這些引擎來處理所有與各種資料庫的接口。

優點

使用數據訪問對象的優點是應用程式的兩個重要部分之間相對簡單並嚴格分離,它們可以但不應該彼此了解任何東西,並且兩者可預期的頻繁和獨立發展。改變業務邏輯可以依賴於相同的DAO接口,而對持久性邏輯的更改只要接口保持正確實現,就不會影響DAO客戶端。存儲的所有細節都隱藏在應用程式的其餘部分中(見信息隱藏)。因此,可以修改一個DAO實現而不影回響用程式的其餘部分,從而可能實現對持久性機制的更改。DAO充當了應用程式與資料庫之間的中介,它們在對象與資料庫記錄之間來迴轉移數據。用測試替身取代DAO可以促進代碼的單元測試,使測試不依賴於持久層。
Java程式語言的非特定上下文中,數據訪問對象作為一項設計概念可以用多種方式實現。這可以將應用程式中的數據訪問部分分離為非常簡單的接口,遷移到框架或商業產品。DAO編碼範例可能需要一些技巧。像是Java Persistence API和Enterprise JavaBeans之類的技術已內置在應用程式伺服器中,可以在JavaEE應用程式伺服器的應用程式中使用。商業產品如TopLink可以在基於對象關係映射(ORM)的產品上使用。流行的開源ORM產品包括Doctrine (PHP)、HibernateiBATIS,以及JPA實現(例如Apache OpenJPA)。

缺點

使用DAO的潛在缺點包括抽象泄漏、代碼重複和抽象反演。尤其是將DAO作為常規Java對象的抽象會隱藏每個資料庫訪問的高成本,並且可能強迫開發人員觸發多個資料庫查詢來檢索普通SQL查詢中一次就可取回的信息。如果一個應用程式需要多個DAO,人們可能發現自己對每個DAO重複基本上相同的創建、讀取、更新和刪除代碼。不過,也可以實現一個處理常用操作的通用DAO來避免樣板化代碼。

相關詞條

熱門詞條

聯絡我們