以下是描述在乙個資料訪問層的設計過程(只乙個總體設計並不包含細節)運用基於介面程式設計的方法設計;以下純屬表達我個人的設計過程中方法,如果朋友有問題和見解發表出來多多交流。
在做資料庫應用系統的過程經常要和資料處理物件,
sql語句打交道;做久了就發覺其實這些工作可以通過封裝相應的元件來簡化這方面的工作。於是就下定決心把這個元件做出來,在做之前先把以前的東西和上網看的資料總結一下,重要一點是資料在處理
sql語句有什麼細節的差別如引數名標認等;明確做這個元件目的和元件需要完成的功能。
元件的功能包括:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
能處理所有實現
idbcommand
介面的物件。
支援實體物件的操作:增加、刪除、修改和查詢等操作。
能對不同資料庫進行操作。
元件的功能明確之後就制定相應的介面,因為我覺介面可以規範元件的開發,在編寫**的過程中不用考慮模組與模組之間細節上的實現。
元件的主要介面包括:
idrivertype
資料裝置提供者描述介面
idatesession
資料處理環境描述介面
ifield
字段表示式描述介面
iexpression
查詢表示式描述介面
元件還內還有很多相關介面如:
.net framework
的idbconnection,idbdataadapter
和一些命令持久化應用介面等;這些都是內部處理就一一詳細描述了。
idrivertype介面
資料庫提供者描述介面,主要功能是實現元件處理不同資料庫的能力。是元件內部處理資料所用到的物件和生成相應
sql的關鍵標識的提供者。是元件的核心部分,但確是元件**結構最簡單的部份,主要是方便其他開發人員擴充套件出新的資料庫提供者。
idatasession介面
資料處理環境描述介面,主要的功能是對資料庫進行不同的操作;它除了能處理所有實現的
idbcommand
物件以外,還能對實體物件進行增、刪、改、查等操作並反映到資料庫中
;資料的事務處理等功能。idatasession必須依賴於idrivertype,因為idatasession用到資料處理物件必須由idrivertype所提供。
ifield介面
字段表示式描述介面,主要功能是描述更新和插入資料時相應的字段資訊。用於處理更改個別欄位所使用的。正常情況下應該使用實體物件插入或修改。
iexpression介面
查詢表示式描述介面,主要功能是生成
sql的條件表示式;通過這個介面可以實現任何複雜的條件表示式構造。因為在處理物件操作的情況下是不能和直接編寫
sql條件語句相關結合,所以抽取這樣乙個介面結合物件操作上更方便。雖然通過
iexpression
可以實現任意的查詢條件,但並不能說明它能代替
sql語句;畢竟在一些很複雜的查詢中
sql相對來說比較直觀。iexpression也是依賴於idrivertype,因為不同資料庫在引數名的標識上是有區別的.
和idatesession具體
實現
乙個資料訪問層的概要設計
以下是描述在乙個資料訪問層的設計過程 只乙個總體設計並不包含細節 運用基於介面程式設計的方法設計 以下純屬表達我個人的設計過程中方法,如果朋友有問題和見解發表出來多多交流。在做資料庫應用系統的過程經常要和資料處理物件,sql語句打交道 做久了就發覺其實這些工作可以通過封裝相應的元件來簡化這方面的工作...
C 多執行緒如何訪問同乙個資料
在多執行緒中,為了使資料保持一致性必須要對資料或是訪問資料的函式加鎖,在資料庫中這是很常見的,但是在程式中大部分都是單執行緒的程式,所以沒有加鎖的必要,但是在多執行緒中,為了保持資料的同步,一定要加鎖。在framework中已經為我們提供了三個加鎖的機制,分別是monitor類 lock關鍵字和mu...
Perl Tk 乙個資料庫期末設計的前台
資料庫的期末設計弄完了,perl tk 做的前台,前台加資料庫花了一天多的時間。量剛到4 位數,愁人的還是資料庫滿足三大正規化的設計,也不知道老師會不會怪自己用perl 做介面,tk 庫畢竟太古老了寫出來的窗體有點90 年代的樣子。相對於這些資料庫的後台設計可愁壞了,下午用沒課的第四大節補上幾個觸發...