羅云芳
(廣西職業(yè)技術(shù)學(xué)院,廣西 南寧, 530226)
目前信息管理系統(tǒng)(MIS)已經(jīng)廣泛應(yīng)用于各行各業(yè),而不管應(yīng)用于哪個(gè)行業(yè)的信息管理系統(tǒng),其核心功能就是數(shù)據(jù)操作。所以,任何一個(gè)信息管理系統(tǒng)的開(kāi)發(fā)、設(shè)計(jì)。其數(shù)據(jù)操作模塊設(shè)計(jì)的質(zhì)量好壞將直接影響著系統(tǒng)的可維護(hù)性、可移植性和可擴(kuò)展性。如何設(shè)計(jì)一個(gè)可維護(hù)性、可移植性和可擴(kuò)展性強(qiáng)的通用數(shù)據(jù)操作模塊是信息管理系統(tǒng)開(kāi)發(fā)必須要考慮的問(wèn)題。
如果在進(jìn)行信息管理系統(tǒng)開(kāi)發(fā)時(shí),沒(méi)有把數(shù)據(jù)操作功能獨(dú)立出來(lái)設(shè)計(jì)成一個(gè)模塊,而是在需要進(jìn)行數(shù)據(jù)操作時(shí)寫(xiě)上相應(yīng)的數(shù)據(jù)操作功能代碼去實(shí)現(xiàn)。這種方式雖然能夠?qū)崿F(xiàn)數(shù)據(jù)操作功能,但會(huì)造成嚴(yán)重的代碼堆疊,而且系統(tǒng)的可維護(hù)性和可移植性都比較差。因此,設(shè)計(jì)一個(gè)通用的數(shù)據(jù)庫(kù)操作模塊,是設(shè)計(jì)開(kāi)發(fā)一個(gè)信息管理系統(tǒng)的重要內(nèi)容。
PHP,是英文超級(jí)文本預(yù)處理語(yǔ)言Hypertext Preprocessor的縮寫(xiě)。PHP是一種HTML內(nèi)嵌式的語(yǔ)言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言,是一種比較流行的Web開(kāi)發(fā)語(yǔ)言,現(xiàn)在大部分中小企業(yè)基于B/S架構(gòu)的信息管理系統(tǒng)都使用PHP語(yǔ)言進(jìn)行開(kāi)發(fā)。PHP版本經(jīng)過(guò)發(fā)展,現(xiàn)在的PHP 5版本完全實(shí)現(xiàn)面向?qū)ο?,利用PHP的面向?qū)ο筇匦?,大大的方便了通用?shù)據(jù)庫(kù)操作模塊的設(shè)計(jì)與實(shí)現(xiàn)。
使用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言進(jìn)行信息系統(tǒng)開(kāi)發(fā)時(shí),數(shù)據(jù)庫(kù)操作功能的實(shí)現(xiàn)基本都遵循以下幾個(gè)步驟:
使用連接對(duì)象與數(shù)據(jù)庫(kù)建立連接。
打開(kāi)連接對(duì)象。
構(gòu)建操作命令。
使用操作對(duì)象,執(zhí)行操作命令對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作。
關(guān)閉連接對(duì)象,斷開(kāi)與數(shù)據(jù)庫(kù)的連接。
基于以上的數(shù)據(jù)庫(kù)操作步驟和PHP 5支持面向?qū)ο蟪绦蛟O(shè)計(jì)的特性,使用PHP設(shè)計(jì)通用數(shù)據(jù)庫(kù)操作模塊的思路是:
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)操作模塊頁(yè)面,并取名為dataHelpers.php。
在dataHelpers.php文件中創(chuàng)建一個(gè)操作數(shù)據(jù)庫(kù)的統(tǒng)一接口(dbHelpers)。
在dataHelpers.php文件中創(chuàng)建實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作接口的類,在類中具體實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)操作的各種方法。
通用數(shù)據(jù)庫(kù)操作模塊頁(yè)面dataHelpers.php的實(shí)現(xiàn)原理圖如圖1所示:
圖1
按設(shè)計(jì)思路,首先在dataHelpers.php文件中創(chuàng)建操作數(shù)據(jù)庫(kù)的統(tǒng)一接口dbHelpers,實(shí)現(xiàn)的關(guān)鍵代碼如下:
接口是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征沒(méi)有方法的實(shí)現(xiàn),因此這些方法可以在不同的地方被不同的類實(shí)現(xiàn),而這些實(shí)現(xiàn)可以具有不同的行為(功能)。在此使用接口,就是利用接口以實(shí)現(xiàn)統(tǒng)一訪問(wèn)不同數(shù)據(jù)庫(kù)的目的。interface是創(chuàng)建接口的關(guān)鍵字,接口中的各方法只有聲明,沒(méi)有具體的實(shí)現(xiàn),具體的實(shí)現(xiàn)在具體的數(shù)據(jù)庫(kù)操作類中實(shí)現(xiàn)。
接下來(lái)實(shí)現(xiàn)具體的數(shù)據(jù)庫(kù)操作類,以下是實(shí)現(xiàn)操作Mysql數(shù)據(jù)庫(kù)操作類的關(guān)鍵代碼:
除了能夠操作Mysql數(shù)據(jù)庫(kù),通用數(shù)據(jù)庫(kù)操作模塊應(yīng)該還可以操作常用的數(shù)據(jù)庫(kù),如sql server,Access,oracle等常用的數(shù)據(jù)。這樣才能達(dá)到通用的目的。此通用數(shù)據(jù)庫(kù)操作模塊正是基于這樣去設(shè)計(jì)的,如要操作sql server數(shù)據(jù)庫(kù),只要設(shè)計(jì)一個(gè)繼承于dbHelpers接口的sql server數(shù)據(jù)庫(kù)操作類,并在類中完成實(shí)現(xiàn)功能的具體方法,就可以實(shí)現(xiàn)對(duì)sql server數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增、刪、查、改的目的。整個(gè)sql server數(shù)據(jù)庫(kù)操作類基本和Mysql 數(shù)據(jù)庫(kù)操作類一樣,只是具體的數(shù)據(jù)庫(kù)操作函數(shù)不一樣,在此就不再對(duì)sql server數(shù)據(jù)庫(kù)操作類進(jìn)行詳細(xì)的設(shè)計(jì)。
上述通用數(shù)據(jù)庫(kù)操作模塊,支持對(duì)常用數(shù)據(jù)庫(kù)數(shù)據(jù)的增、刪、查、改等操作。在使用PHP語(yǔ)言開(kāi)發(fā)信息管理系統(tǒng)時(shí),可以直接使用本通用數(shù)據(jù)庫(kù)操作模塊實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作,從而加快系統(tǒng)的開(kāi)發(fā)效率,并增加了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
[1]郗亞輝,王 苗.通用查詢模塊的設(shè)計(jì)與實(shí)現(xiàn).河北大學(xué)學(xué)報(bào).2003.9
[2]韓衛(wèi)媛,成艷真.PHP中類的應(yīng)用.濟(jì)源職業(yè)技術(shù)學(xué)院學(xué)報(bào).2012.01