• 沒有找到結果。

資料庫代理物件

在文檔中 中 華 大 學 (頁 61-66)

第四章 物件化資料庫連接架構

4.5 資料庫代理物件

表 4.6 DBSchema 類別之屬性與方法

DBSchema 名稱 說明

Table 記錄所有關聯式資料表格 之物件,其資料型態應為 Table 類別之組合

attribute

Domain 記錄關聯式資料庫之資料 庫名稱

setTable() 設定表格物件內容 setDomain() 設定關聯式資料庫之資料

庫名稱

setField() 設定欄位物件內容 getTable() 取得表格物件內容 getField() 取得欄位物件內容 getDomain() 取得關聯式資料庫之資料

庫名稱 Method

createSchemaFile() 產生資料庫定義碼檔案

每一個表格物件則對應至類別圖當中之類別,透過這個方法建立物件導向中 之類別與關聯式資料庫表格之間的對應關係。也使得 DBSchema 類別物件可以透 過 Table 類別物件與 Field 類別物件,將關聯式資料庫之定義碼自動化產生。

圖 4.5 資料庫存取物件合作之類別

表 4.7 為 DBInfo 類別,負責記錄實際去連接關聯式資料庫時,所需的相關設 定資料。例如關聯式資料庫的網路位址,使用者名稱與密碼,以及使用何種資料 庫連接之應用程式處理介面等等的訊息。

表 4.7 DBInfo 類別之屬性與方法

DBInfo 名稱 說明

DBname 資料庫名稱

DriverName 連接資料庫的應用程式 處理介面名稱

DBUser 資料庫使用者名稱 DBPassword 資料庫使用者密碼 attribute

DBurl 資料庫伺服器之網路位 址

setDBname 設定資料庫名稱

setDriverName 設定資料庫應用程式處 理介面名稱

setDBUser 設定資料庫使用者名稱 Method

setDBpassword 設定資料苦使用者密碼

續表 4.7 DBInfo 類別之屬性與方法

DBInfo 名稱 說明

setDBurl 設定資料庫伺服器之網 路位址

getDBname 取得資料庫名稱

getDriverName 取得資料庫應用程式處 理介面名稱

getDBUser 取得資料庫使用者名稱 getDBpassword 取得資料苦使用者密碼 Method

getDBurl 取得資料庫伺服器之網 路位址

表 4.8 為 ClassProxy 類別,負責處理資料庫存取相關的工作,在系統分析所 產生的類別圖中,每一個類別都會產生一個對應的 ClassProxy 物件來負責處理該 類別的資料庫存取動作。在本架構中,該類別提供了幾個存取資料庫的方法,透 過這些方法,可以將物件寫入關聯式資料庫的表格當中,而不需要額外去編寫結 構化查詢語句。

表 4.8 ClassProxy 類別之屬性與方法

ClassProxy 名稱 說明

ClassName 記錄此物件為處理那一 種類別之類別名稱 DBInfo 記錄關聯式資料庫存取

時所需訊息,其資料型態 為 DBInfo

attribute

DBSchema 記錄存取之資料庫表格 等相關資料,其資料型態 為 DBSchema

getDBInfo 取得 DBinfo 中所記錄之 關聯式資料庫連接資訊 setClassName 設定負責處理之類別名

getDBSchema 取得類別在關聯式資料 庫中所存放之表格欄位 資料

Method

generObject 負責將關聯式資料庫取 得之資料包裝成為物件 的型態

續表 4.8 ClassProxy 類別之屬性與方法

ClassProxy 名稱 說明

設定資料查詢語句 SetQueryStr

QueryExecute 執行查詢語句並且將結 果回傳

getAllObject 取得該類別所有的物件 updateObject 更新物件的資料,並將其

寫入關聯式資料庫 Method

deleteObject 刪除物件,並將資料庫中 的資料刪除

圖 4.6 為 ClassProxy 在執行 getAllObject 方法時之循序圖。getAllObject 這個 方法主要是取回所有該類別中之物件屬性,並且包裝成為物件之型態再傳回給程 式設計人員去運用。循序圖中詳細之步驟如下。

圖 4.6 getAllObject 之循序圖

1. 程式設計人員要求執行 getAllObject 這個方法時,請求 ClassProxy 傳回該類別 之所有物件。’

2. ClassProxy 物件跟 DBInfo 取得建立關聯式資料庫連線的資訊。

3. 取得關聯式資料庫連線之訊息物件。

4. 與 DBSchema 物件進行互動,取得在關聯式資料庫中相對應之表格欄位訊息。

5. DBSchema 物件需要知道相關的資料庫表格的訊息,則需向 Table 物件去進行 要求。

6. Table 物件需要知道相關欄位之訊息則需要向 Field 物件進行要求。

7. Field 將相關欄位訊息為傳給 Table 物件。

8. Table 物件將整個表格訊息以物件方式給予 DBSchema 物件。

9. 將相關的資料表格內容訊息回傳給 ClassProxy。

10. ClassProxy 實際去進行資料庫的存取,從關聯式資料庫中取得該物件所需要 的資料。

11. 取得資料庫表格內之資料。

12. ClassProxy 再將取回來之資料包裝成物件的格式。

13. 回傳給程式設計人員,完成要求。

透過這幾個類別之間的互動,可以完成本架構所提出之物件化資料庫存取介 面之功能,讓程式設計人員可以不需要再編寫與物件無關的結構化查詢語句。同 時經由自動產生之機制,可以更快速建立資料庫與系統程式。在下個章節將提出 一個範例來驗證本架構之可行性。

在文檔中 中 華 大 學 (頁 61-66)

相關文件