一種嵌入式設備數據庫封裝的框架及實現方法
【技術領域】
[0001] 本發(fā)明涉及嵌入式設備數據庫領域,特別涉及一種嵌入式設備數據庫封裝的框架 及實現方法。
【背景技術】
[0002] 嵌入式設備中,不可避免的要使用到針對大量數據操作的軟件。在傳統(tǒng)的嵌入式 設備中,一般直接使用數據結構,比如數組或者鏈表等方式來實現數據的操作。對于有充足 內存設備的場合,也會使用一些專用的嵌入式數據庫,比如SQLite等。
[0003] 然而上述兩種現有的實現方法,具有以下的問題:
[0004] 對于不用專用嵌入式數據庫的實現方法,優(yōu)點是簡單,但缺點是無論添加什么樣 的數據表,開發(fā)人員都需要自己管理內存和各種實現方法,開發(fā)周期長;而且不同的開發(fā)人 員有各種不同的實現方式,也不易于移植。
[0005] 對于直接采用專用數據庫的方法,由于涉及對SQL(結構化查詢語言)的操作,一 般的開發(fā)人員需要花時間了解;更麻煩的是,嵌入式系統(tǒng)一般用C語言實現,直接用SQL進 行操作也不太方便。直接對數據庫進行操作,還將花更多精力去維護數據庫。
【發(fā)明內容】
[0006] 本發(fā)明的目的是通過一種數據庫封裝的框架及實現方法,提高數據操作的一致 性,實現對多種通用數據庫的支持,加快各種大小嵌入式系統(tǒng)平臺中數據庫相關模塊的實 現。
[0007] 為了達到上述目的,本發(fā)明的一個技術方案是提供一種數據庫封裝的框架,其包 含:
[0008] 數據庫層,包含若干數據庫;
[0009] DB-API層,對數據庫操作進行統(tǒng)一封裝,提供實現數據庫操作的抽象接口;
[0010] DB-COM-API層,結合各數據表的定義,對所述DB-API層進行再次封裝,提供能實 現數據表操作的通用接口;
[0011] DBi-API層,針對各個數據表的操作分別實現封裝,提供通過調用所述 DB-COM-API層的通用接口來對相應數據表進行操作的具體接口;
[0012] 數據表層,分別對各個數據表進行定義。
[0013] 優(yōu)選地,所述數據庫封裝的框架應用于嵌入式系統(tǒng)。
[0014] 本發(fā)明的另一個技術方案是提供一種數據庫封裝的實現方法,其包含:
[0015] 實現數據表層,對各個數據表分別進行定義;
[0016] 實現DBi-API層,提供分別實現各個數據表的操作的具體接口;
[0017] 實現DB-COM-API層,結合各數據表的定義,提供能實現數據表操作的通用接口;
[0018] 通過調用所述DB-COM-API層的通用接口,對各個數據表中的一些數據表進行操 作;通過調用所述DBi-API層的具體接口及所述DB-COM-API層的通用接口,對各個數據表 中的另一些數據表進行操作。
[0019] 優(yōu)選地,所述實現方法進一步包含:
[0020] 實現DB-API層,針對數據庫層的若干數據庫,實現對數據庫操作的統(tǒng)一封裝,提 供實現數據庫操作的抽象接口;
[0021] 所述DB-COM-API層對所述DB-API層進行了再次封裝;所述DB-COM-API層通過調 用所述DB-API層的抽象接口,對數據庫進行操作。
[0022] 優(yōu)選地,所述數據表層的實現,包含:數據表描述;
[0023] 所述數據表描述,包含對數據表進行如下的定義:
[0024] 字段索引;表索引標記;字段描述;字段類型;字段占用空間大??;字段在記錄中 的偏移;從查詢結果中獲取字段函數指針;更新該字段函數指針;以及,用一個數據結構描 述該數據表。
[0025] 優(yōu)選地,所述數據表層的實現,還包含:索引表描述;
[0026] 所述索引表描述,包含:描述索引順序;描述索引名;描述索引名長度。
[0027] 優(yōu)選地,所述DB-COM-API層將相應數據表的信息進行統(tǒng)一記錄,包含對以下內容 的描述:數據庫句柄;表名;表描述;索引描述;表字段數;索引數;通用查詢輸出查詢結果 排序串。
[0028] 優(yōu)選地,所述DB-COM-API層的實現,包含提供如下的接口函數:數據庫系統(tǒng)初始 化;數據庫系統(tǒng)終止;數據庫查詢;數據庫插入;數據庫更新;數據庫刪除;數據庫操作。
[0029] 優(yōu)選地,所述DB-API層的實現,包含封裝數據庫并實現如下的接口函數:系統(tǒng)初 始化;系統(tǒng)關閉函數;查詢函數;數據更新函數;數據刪除函數;數據插入函數;查詢結果 釋放函數;表使用函數。
[0030] 優(yōu)選地,所述數據庫封裝的實現方法應用于嵌入式系統(tǒng)。
[0031] 針對現有兩種實現方法的缺陷,本發(fā)明提出所述數據庫封裝的框架及實現方法, 具有如下的優(yōu)點:
[0032] 1、借鑒小型嵌入式數據庫系統(tǒng)支持SQL的基本功能,避免直接對內存操作,增強 系統(tǒng)的數據庫處理能力。
[0033] 2、通過對各種開源嵌入式數據庫系統(tǒng)的封裝,使普通的嵌入式數據庫開發(fā)人員不 必關注具體的數據庫系統(tǒng)實現,以此可以大大提高數據庫系統(tǒng)的開發(fā)速度以及可靠性。
[0034] 3、通過對各種嵌入式數據庫系統(tǒng)的支持,使本系統(tǒng)的適應性大大增加。通過對不 同數據庫系統(tǒng)的選擇,不僅可以適用各種小型的嵌入式設備,比如各種無線路由器,網關 等,還可以支持到0LT(光線路終端)等各種大型的嵌入式設備。
【附圖說明】
[0035] 圖1是本發(fā)明所述數據庫封裝框架的示意圖;
[0036] 圖2是本發(fā)明所述數據庫封裝實現方法的示意圖。
【具體實施方式】
[0037] 本發(fā)明實現一種數據庫操作方案,通過對數據庫進行封裝,可以以一種相對簡單 的方式對數據進行統(tǒng)一的操作,并且易于移植和擴展,從而適應于各種不同的嵌入式設備。
[0038] 如圖1所示,本發(fā)明所述數據庫封裝的框架分為5層,分別為:
[0039] 數據庫層,可以是開源或自研數據庫,例如是SQLite,MySQL,Berkeley*DB等數據 庫;
[0040] DB-API層(數據庫操作抽象層),是封裝數據操作的API層(API指應用程序編程 接口),提供能實現數據庫操作的抽象接口;
[0041] DB-COM-API層(通用數據表操作封裝層),其結合自定義數據表的定義,對DB-API 層進行再次封裝,提供能統(tǒng)一實現數據表操作的接口;
[0042] DBi-API層(具體數據表操作封裝層),針對每個具體的數據表實現的API接口, 只需結合實際調用DB-COM-API層的API接口,即可實現對本數據表的對應操作;
[0043] 數據表層,用來實現對單個具體的數據表分別定義。
[0044] 對于實現一個新的數據表來說,只要實現相應的數據表層和DBi-API層,即可快 速地開發(fā)出需要的應用。
[0045] 如圖2所示,本發(fā)明數據庫封裝的實現方法,包括如下過程:
[0046] 所述DB-API層的實現。由于不同數據庫自身的實現方法是不一樣的,因此在對數 據庫進行直接操作之前,對數據庫操作進行統(tǒng)一封裝,使得對所