專利名稱::訪問數(shù)據(jù)庫的方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)處理的技術(shù),更具體的涉及實現(xiàn)數(shù)據(jù)庫訪問的方法及裝置。
背景技術(shù):
:隨著社會的發(fā)展,大量的數(shù)據(jù)需要存儲起來,對存儲的數(shù)據(jù),根據(jù)不同用戶的需求可應(yīng)用一定的數(shù)據(jù)處理方法進(jìn)行處理,數(shù)據(jù)庫是適應(yīng)這種需求的一種技術(shù),簡單的說,數(shù)據(jù)庫是數(shù)據(jù)以一種能夠持久保存,并且可以被操作的方式來保存的數(shù)據(jù)集合。一個數(shù)據(jù)庫系統(tǒng)由一個數(shù)據(jù)庫和周圍的環(huán)境,包括軟件、操作系統(tǒng)、硬件和使用它的用戶組成。為了使用戶可以訪問數(shù)據(jù)庫,如用戶需對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢、添加、刪除、修改等操作,現(xiàn)有技術(shù)是通過下面的方法實現(xiàn)數(shù)據(jù)庫訪問的首先確定相應(yīng)數(shù)據(jù)庫的連接參數(shù),如數(shù)據(jù)庫名稱、統(tǒng)一資源定位符(URL)及用戶名稱等;然后由獲取的數(shù)據(jù)庫連接參數(shù)建立與該數(shù)據(jù)庫的連接;第三,則是根據(jù)數(shù)據(jù)庫系統(tǒng)訪問操作的需求封裝SQL(結(jié)構(gòu)化查詢語言)語句,然后執(zhí)行封裝后的SQL語句,返回操作結(jié)果。但隨著數(shù)據(jù)庫的廣泛應(yīng)用,數(shù)據(jù)的存儲、交換越來越頻繁,特別是大型的數(shù)據(jù)庫系統(tǒng),用戶數(shù)很多,每當(dāng)需要新增加一種新的數(shù)據(jù)庫訪問操作時,都要重復(fù)編碼實現(xiàn)上述的過程,由于大量代碼的存在,以及數(shù)據(jù)庫系統(tǒng)的龐大,使得管理維護(hù)數(shù)據(jù)庫很困難,系統(tǒng)運行緩慢,工作效率極低,管理維護(hù)的開銷很大。綜上,現(xiàn)有技術(shù)存在下面的缺點1、實現(xiàn)數(shù)據(jù)庫訪問時存在大量冗余代碼,占用系統(tǒng)資源,使系統(tǒng)運行緩慢,效率很低。由于訪問數(shù)據(jù)庫都是按照獲取數(shù)據(jù)庫連接,封裝SQL及執(zhí)行SQL并返回訪問結(jié)果的流程實現(xiàn)的,當(dāng)訪問數(shù)據(jù)庫的訪問操作的參數(shù)發(fā)生變化時,需要重新編碼實現(xiàn),這會產(chǎn)生大量的冗余代碼,占用系統(tǒng)資源,使系統(tǒng)運行效率降低;2、訪問數(shù)據(jù)庫不靈活,不安全。現(xiàn)有技術(shù),數(shù)據(jù)庫系統(tǒng)連接參數(shù),一旦選定輕易不能改變,對于數(shù)據(jù)庫訪問的高層應(yīng)用系統(tǒng),如果數(shù)據(jù)庫用戶名和密碼參數(shù)定義為常量,則高層應(yīng)用系統(tǒng)的用戶都使用同樣的用戶名和密碼,這樣并不安全,而如果定義為變量,則每次用戶使用時都必須提供用戶名和密碼,很不靈活。3、現(xiàn)有技術(shù)開發(fā)出的數(shù)據(jù)庫系統(tǒng)不易擴展,不利用將來擴展新的應(yīng)用。由于未來的數(shù)據(jù)庫開發(fā)大多是應(yīng)用面向?qū)ο蠛头謱拥募夹g(shù)實現(xiàn),而現(xiàn)有技術(shù)實現(xiàn)數(shù)據(jù)庫訪問時,高層應(yīng)用需要參與持久層(數(shù)據(jù)庫)的資源(數(shù)據(jù)庫連接)調(diào)度(這實際上應(yīng)該是由訪問層實現(xiàn)的),高層與持久層之間并不透明,擴展性不好,開發(fā)效率低。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種數(shù)據(jù)庫訪問的方法及裝置,應(yīng)用該方法及裝置可以大大減少冗余代碼量,提高系統(tǒng)的運行效率。為實現(xiàn)本發(fā)明的上述目的,本發(fā)明提供的一種訪問數(shù)據(jù)庫的方法,包括以下步驟a)建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,所述描述文件包括對多種數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述;b)建立數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,所述描述文件包括對數(shù)據(jù)庫系統(tǒng)中訪問操作數(shù)據(jù)的多個協(xié)議簇的描述;c)讀取所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,初始化數(shù)據(jù)庫連接池;d)讀取所述數(shù)據(jù)庫訪問操作的描述文件,初始化數(shù)據(jù)庫訪問操作對象;e)根據(jù)數(shù)據(jù)庫訪問請求,獲取數(shù)據(jù)庫訪問操作對象,并從所述的數(shù)據(jù)庫連接池中獲取有效連接,執(zhí)行數(shù)據(jù)庫訪問并返回結(jié)果。優(yōu)化的,所述的數(shù)據(jù)庫系統(tǒng)連接參數(shù)及數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件可用擴展標(biāo)記語言(XML)建立。其中,步驟c)包括以下步驟創(chuàng)建數(shù)據(jù)庫連接池管理器,從所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件讀取數(shù)據(jù)庫系統(tǒng)類型標(biāo)識;根據(jù)所述的數(shù)據(jù)庫系統(tǒng)類型標(biāo)識,創(chuàng)建該類型數(shù)據(jù)庫系統(tǒng)的連接池;使用從所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中獲取的數(shù)據(jù)庫驅(qū)動程序標(biāo)簽值創(chuàng)建一個數(shù)據(jù)庫連接驅(qū)動器實例,調(diào)用該數(shù)據(jù)庫連接驅(qū)動器實例獲取數(shù)據(jù)庫系統(tǒng)連接的方法,將定義在所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中的數(shù)據(jù)庫名稱、統(tǒng)一資源定位符、密碼標(biāo)簽中的值作為連接參數(shù)傳入以創(chuàng)建指定數(shù)據(jù)庫的連接;以創(chuàng)建的連接作為一個有效、空余連接加入連接池,并以數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中描述的數(shù)據(jù)庫名稱為索引,將該連接池加入連接池管理器中。其中,步驟d)包括下述步驟創(chuàng)建數(shù)據(jù)庫訪問操作倉庫;創(chuàng)建存放某數(shù)據(jù)庫所有訪問操作的容器;初始化數(shù)據(jù)庫訪問操作對象實例;以所述數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件中描述的命令碼為索引,將數(shù)據(jù)庫訪問操作對象加入容器;以所述數(shù)據(jù)庫系統(tǒng)訪問操作描述文件中描述的數(shù)據(jù)庫名稱為索引,將所述容器加入數(shù)據(jù)庫訪問操作倉庫。其中,步驟e)包括以下步驟從接收到的數(shù)據(jù)庫訪問請求中提取出查詢協(xié)議的命令碼及條件參數(shù);在數(shù)據(jù)庫訪問操作倉庫中查找該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象;如查找到該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象,則從中提取出條件前串、條件數(shù)組和條件后串信息,并與條件參數(shù)一起封裝SQL語句,如沒有查到,則拋出數(shù)據(jù)庫訪問操作異常,結(jié)束操作;封裝完SQL語句后,從連接池得到可用連接,執(zhí)行封裝后的SQL語句,并返回結(jié)果。根據(jù)本發(fā)明的另一方面,一種實現(xiàn)數(shù)據(jù)庫訪問的裝置,用于處理數(shù)據(jù)庫訪問請求,該裝置包括描述模塊,用于建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件和數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件;第一解析模塊,用于讀取上述描述模塊建立的數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,解析出初始化數(shù)據(jù)庫連接池所需的連接參數(shù);第二解析模塊,用于讀取上述描述模塊建立的數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,解析出初始化數(shù)據(jù)庫訪問操作對象所需的操作協(xié)議;處理模塊,用于根據(jù)數(shù)據(jù)庫訪問請求,得到數(shù)據(jù)庫訪問操作對象,從所述的數(shù)據(jù)庫連接池中獲取有效連接,執(zhí)行數(shù)據(jù)庫訪問并返回結(jié)果。具體的,所述處理模塊進(jìn)一步包括以下模塊提取模塊,用于從接收到的數(shù)據(jù)庫訪問請求中提取出查詢協(xié)議的命令碼;查找模塊,用于根據(jù)提取模塊提取出的命令碼在數(shù)據(jù)庫訪問操作倉庫中查找該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象;封裝模塊,用于將查找模塊查找到的數(shù)據(jù)庫庫訪問操作對象封裝的操作元素和條件參數(shù)一起封裝SQL語句,所述操作元素包括條件前串、條件數(shù)組、條件后串信息;執(zhí)行模塊,用于從連接池得到可用連接,執(zhí)行封裝模塊封裝后的SQL語句,并返回結(jié)果。與現(xiàn)有技術(shù)相比,本發(fā)明具有下面的優(yōu)點1、減少冗余代碼量,提高系統(tǒng)運行效率。由于本發(fā)明中通過描述數(shù)據(jù)庫訪問操作的參數(shù),當(dāng)數(shù)據(jù)庫操作類型或操作參數(shù)發(fā)生變化時,只需在數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件中修改相應(yīng)的參數(shù),而不需重新編碼實現(xiàn),由于不需修改代碼,可避免重新編譯、重新部署目標(biāo)代碼的過程,使系統(tǒng)穩(wěn)定性大為提高,另外冗余代碼量的減少,降低了系統(tǒng)資源的占用,可使系統(tǒng)運行效率提高;2、訪問數(shù)據(jù)庫更靈活、更安全。本發(fā)明中在數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中描述數(shù)據(jù)庫訪問所需的連接參數(shù),對高層數(shù)據(jù)庫應(yīng)用系統(tǒng)的用戶只需在安裝時指定一次數(shù)據(jù)庫用戶名和密碼,對不同的安裝可以使用不同的用戶名和密碼,較現(xiàn)有技術(shù)更加靈活,安全。3、數(shù)據(jù)庫系統(tǒng)擴展性較好,有利用將來進(jìn)一步的開發(fā)。本發(fā)明中高層應(yīng)用只需將條件參數(shù)和命令碼傳入,剩余的所有工作(獲取數(shù)據(jù)庫連接、封裝SQL、返回結(jié)果、釋放數(shù)據(jù)庫連接)都由本發(fā)明實現(xiàn)的訪問層完成,高層不需參與持久層的資源調(diào)度(數(shù)據(jù)庫連接),各層之間完全透明,擴展性較好。圖1是本發(fā)明訪問數(shù)據(jù)庫的流程圖;圖2是本發(fā)明建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件的XMLschema結(jié)構(gòu);圖3是本發(fā)明建立數(shù)據(jù)庫訪問操作的描述文件的XMLschema結(jié)構(gòu);圖4是本發(fā)明初始化數(shù)據(jù)庫連接池的流程圖;圖5是本發(fā)明初始化數(shù)據(jù)庫訪問操作對象的流程圖;圖6是本發(fā)明處理高層數(shù)據(jù)庫訪問請求的流程圖;圖7是本發(fā)明數(shù)據(jù)庫訪問服務(wù)裝置的組成結(jié)構(gòu)圖;圖8是圖7中處理模塊的詳細(xì)組成結(jié)構(gòu)圖;圖9是圖7本發(fā)明數(shù)據(jù)庫訪問服務(wù)裝置與高層應(yīng)用系統(tǒng)結(jié)合實現(xiàn)數(shù)據(jù)庫訪問的示意圖。具體實施例方式下面結(jié)合附圖以具體的實施方式進(jìn)一步說明本發(fā)明的方法及裝置,以便本領(lǐng)域的技術(shù)人員更好的理解本發(fā)明是如何基于描述實現(xiàn)數(shù)據(jù)庫訪問的。由于現(xiàn)有技術(shù)在實現(xiàn)數(shù)據(jù)庫訪問時包含相同的流程,可將這種流程固定下來,同時將數(shù)據(jù)庫訪問中變化最頻繁的連接參數(shù)和訪問操作的參數(shù)從處理流程中分離出來,本發(fā)明正是應(yīng)用這種方法實現(xiàn)數(shù)據(jù)庫訪問的,應(yīng)用這種方法可以大大減少冗余代碼量,提高高層應(yīng)用系統(tǒng)的靈活性及安全性及將來的應(yīng)用擴展。請看圖1所示,本發(fā)明訪問數(shù)據(jù)庫的方法包括以下步驟步驟101建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,所述描述文件包括對多種數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述。在現(xiàn)實環(huán)境中,常需要將基于不同類型數(shù)據(jù)庫的應(yīng)用集成在一起。如果高層應(yīng)用系統(tǒng)本身不能支持?jǐn)?shù)據(jù)庫級的集成,那么需要將其中一個數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入另一個庫中,但這又帶來了數(shù)據(jù)同步問題,通過描述數(shù)據(jù)庫連接參數(shù)后,可以直接實現(xiàn)數(shù)據(jù)庫級的應(yīng)用集成,應(yīng)用處理邏輯和數(shù)據(jù)庫訪問層都不用改動,只需融合前端界面部分即可,省時省力。另外,現(xiàn)有技術(shù)將數(shù)據(jù)庫系統(tǒng)連接參數(shù)定義在程序中,會導(dǎo)致下面的結(jié)果首先,如果數(shù)據(jù)庫用戶名和密碼參數(shù)在程序中定義成常量,那么所有使用本高層應(yīng)用系統(tǒng)的用戶都使用了同樣的數(shù)據(jù)庫用戶名和密碼,這樣并不安全;其次,如果數(shù)據(jù)庫用戶名和密碼參數(shù)在程序中定義成變量,那么高層應(yīng)用系統(tǒng)的用戶在每次使用時,都必須提供數(shù)據(jù)庫用戶名和密碼,很不方便。所以,如果將數(shù)據(jù)庫系統(tǒng)連接參數(shù)定義在描述文件中,那么用戶只需在高層應(yīng)用安裝時指定一次數(shù)據(jù)庫用戶名和密碼,且不同的安裝可以使用不同的用戶名和密碼。步驟102建立數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,所述描述文件包括對數(shù)據(jù)庫系統(tǒng)中訪問操作數(shù)據(jù)的多個協(xié)議簇的描述。上述步驟101建立了數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,由于數(shù)據(jù)庫訪問處理流程中變化的除了數(shù)據(jù)庫系統(tǒng)連接參數(shù)外,還有訪問操作數(shù)據(jù)的參數(shù),對于不同的操作類型、操作需求,操作數(shù)據(jù)的SQL語句也是變化的。本步驟中對數(shù)據(jù)庫系統(tǒng)訪問操作的協(xié)議簇進(jìn)行描述,當(dāng)訪問操作數(shù)據(jù)的參數(shù)變化時,例如新增加數(shù)據(jù)庫訪問操作,則只需在描述文件中添加新的協(xié)議簇描述即可,而不需像現(xiàn)有技術(shù)那樣重新編碼實現(xiàn),即實現(xiàn)零編碼的數(shù)據(jù)庫訪問。步驟103讀取所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,初始化數(shù)據(jù)庫連接池。連接池是對一組數(shù)據(jù)庫連接的維護(hù)以使其可為應(yīng)用程序服務(wù)器上的應(yīng)用程序重用,上述步驟建立訪問數(shù)據(jù)庫必須的連接參數(shù)和訪問操作的協(xié)議簇的描述文件,本步驟只需讀取數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,從中獲取所需的連接參數(shù),建立與數(shù)據(jù)庫的連接,并加入連接池中,以便有數(shù)據(jù)庫訪問請求時可從連接池中獲得可用連接。步驟104讀取所述數(shù)據(jù)庫訪問操作的描述文件,初始化數(shù)據(jù)庫訪問操作對象。建立了數(shù)據(jù)庫連接池,還需要根據(jù)所述數(shù)據(jù)庫訪問操作的描述文件,初始化數(shù)據(jù)庫訪問操作對象。步驟105根據(jù)數(shù)據(jù)庫訪問請求,獲取數(shù)據(jù)庫訪問操作對象,并從所述的數(shù)據(jù)庫連接池中獲取有效連接,執(zhí)行數(shù)據(jù)庫訪問并向上層返回訪問操作結(jié)果。下面進(jìn)一步具體敘述步驟101如何對數(shù)據(jù)庫系統(tǒng)連接參數(shù)進(jìn)行描述,這里采用XML(擴展標(biāo)記語言)進(jìn)行描述,首先建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的XMLschema結(jié)構(gòu),然后在數(shù)據(jù)庫訪問時,按照所述的結(jié)構(gòu)進(jìn)行具體的描述,請看圖2所示的本發(fā)明建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件的XMLschema結(jié)構(gòu),包括如下的定義1)多數(shù)據(jù)庫系統(tǒng)定義(DBDefinations)包含多種數(shù)據(jù)庫(DBGroup)定義。2)數(shù)據(jù)庫系統(tǒng)定義包含對數(shù)據(jù)庫系統(tǒng)類型標(biāo)識(DB)和數(shù)據(jù)庫系統(tǒng)中所有數(shù)據(jù)庫(Devices)的定義。3)對數(shù)據(jù)庫系統(tǒng)類型標(biāo)識的定義包括數(shù)據(jù)庫類型名(Type)和數(shù)據(jù)庫驅(qū)動程序(Driver)。4)對數(shù)據(jù)庫系統(tǒng)中具體某一數(shù)據(jù)庫(Device)的定義包括數(shù)據(jù)庫名稱(Name)定義數(shù)據(jù)庫標(biāo)識符統(tǒng)一資源定位符(URL)定義連接數(shù)據(jù)庫的URL用戶名(User)定義數(shù)據(jù)庫有效的用戶名密碼(Password)定義用戶名對應(yīng)的密碼,為可選項,密文存儲。上述連接參數(shù)中,用戶名及密碼是可選的,可根據(jù)實際情況進(jìn)行選擇,在具體訪問數(shù)據(jù)庫時,只需根據(jù)相應(yīng)的數(shù)據(jù)庫系統(tǒng)類型,選擇相應(yīng)的連接參數(shù)進(jìn)行描述,當(dāng)連接參數(shù)發(fā)生變化時,只需修改相應(yīng)的描述文件即可。繼續(xù)敘述本發(fā)明的方法,步驟102需要建立數(shù)據(jù)庫訪問操作的描述文件,這里同樣采用XML進(jìn)行描述,請看圖3所示的本發(fā)明建立數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件的XMLschema結(jié)構(gòu),包括下面的定義1)數(shù)據(jù)庫訪問操作定義(DBAccessDefinations)包含多個協(xié)議簇(DBAccessDefination)定義。2)協(xié)議簇定義包含對數(shù)據(jù)庫(Device)和與該數(shù)據(jù)庫相關(guān)的所有數(shù)據(jù)庫訪問操作(Protocols)的定義。3)對具體某一條協(xié)議(Protocol)的定義信息包括命令碼(CommandCode)定義數(shù)據(jù)庫訪問操作的命令字,是數(shù)據(jù)庫訪問操作的唯一確定標(biāo)識。條件前串(PreCondition)定義SQL語句的關(guān)鍵字(Select,Insert),表名(from)和多表關(guān)聯(lián)條件。條件數(shù)組(ConditionArray)定義Where條件對應(yīng)的字段名和關(guān)系運算符,是可選的。條件后串(PostCondition)定義附加條件,如order子句等。具體要實現(xiàn)某一數(shù)據(jù)庫的訪問操作時,只需按照上述定義的結(jié)構(gòu)進(jìn)行描述,建立描述文件,而其余的操作,如封裝并執(zhí)行SQL語句,返回執(zhí)行結(jié)果的步驟則可編碼固化。由于數(shù)據(jù)庫訪問操作的SQL參數(shù)是在描述文件中描述的,當(dāng)數(shù)據(jù)庫訪問的操作類型或操作參數(shù)發(fā)生變化時,只需在描述文件中修改相應(yīng)的描述,如條件前串、條件數(shù)組或條件后串等,由于數(shù)據(jù)庫訪問操作最容易變化的訪問操作參數(shù)與訪問處理流程分離開,訪問操作的參數(shù)變化時,并不需要重新編碼,可節(jié)省大量的代碼,而且由于不需修改代碼,進(jìn)一步不需重新編譯、重新部署目標(biāo)代碼的過程,使維護(hù)開銷最小,可降低系統(tǒng)資源的占用,使系統(tǒng)穩(wěn)定性大為提高。下面結(jié)合上述的數(shù)據(jù)庫連接參數(shù)及數(shù)據(jù)庫訪問操作的XMLschema結(jié)構(gòu)進(jìn)一步說明本發(fā)明訪問數(shù)據(jù)庫的方法,具體實施時根據(jù)上述XMLschema結(jié)構(gòu),選擇相應(yīng)的數(shù)據(jù)庫連接參數(shù)進(jìn)行描述以建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,選擇數(shù)據(jù)庫訪問操作涉及的參數(shù)進(jìn)行描述以建立數(shù)據(jù)庫訪問操作的描述文件,下面來看步驟103初始化數(shù)據(jù)庫連接池的流程,請看圖4所示,初始化數(shù)據(jù)庫連接池包括下面的步驟步驟401創(chuàng)建數(shù)據(jù)庫連接池管理器,從所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中讀取數(shù)據(jù)庫系統(tǒng)類型標(biāo)識;步驟402根據(jù)所述的數(shù)據(jù)庫系統(tǒng)類型標(biāo)識,創(chuàng)建該類型數(shù)據(jù)庫系統(tǒng)的連接池;步驟403使用數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中描述的數(shù)據(jù)庫驅(qū)動程序標(biāo)簽值創(chuàng)建一個數(shù)據(jù)庫連接驅(qū)動器實例;步驟404調(diào)用該數(shù)據(jù)庫連接驅(qū)動器實例獲取數(shù)據(jù)庫系統(tǒng)連接的方法,將定義在數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中的數(shù)據(jù)庫名稱、統(tǒng)一資源定位符、密碼標(biāo)簽中的值作為連接參數(shù)傳入以創(chuàng)建指定數(shù)據(jù)庫的連接;步驟405以創(chuàng)建的連接作為一個有效、空余連接加入連接池;步驟406以數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中描述的數(shù)據(jù)庫名稱為索引,將該連接池加入連接池管理器中。進(jìn)一步敘述本發(fā)明的方法,上述根據(jù)數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,獲取了創(chuàng)建數(shù)據(jù)庫連接池所需的連接參數(shù),并初始化數(shù)據(jù)庫連接池,步驟102則建立了數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,下面來看初始化數(shù)據(jù)庫訪問操作對象的過程,圖5是本發(fā)明中初始化數(shù)據(jù)庫訪問操作對象的流程,具體的包括以下步驟步驟501創(chuàng)建數(shù)據(jù)庫訪問操作倉庫,所述的訪問操作倉庫是一個二級索引結(jié)構(gòu),可以是hash表,或者其他的向量結(jié)構(gòu);步驟502創(chuàng)建存放某數(shù)據(jù)庫所有訪問操作的容器;步驟503獲取數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件中描述的數(shù)據(jù)庫訪問的協(xié)議簇描述,初始化數(shù)據(jù)庫訪問操作對象實例,以便有數(shù)據(jù)庫訪問請求時獲得所需的方法;步驟504以數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件中描述的命令碼為索引,將數(shù)據(jù)庫訪問操作對象加入容器;步驟505進(jìn)一步以數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件描述的數(shù)據(jù)庫名稱為索引,將所述容器加入數(shù)據(jù)訪問操作倉庫。上述步驟501所述的數(shù)據(jù)庫訪問操作倉庫為二級索引結(jié)構(gòu),該二級索引結(jié)構(gòu)的第一級索引表示多個數(shù)據(jù)庫,以數(shù)據(jù)庫訪問操作的描述文件中描述的數(shù)據(jù)庫名稱為索引,定義在該數(shù)據(jù)庫上的所有訪問數(shù)據(jù)庫操作集作為索引內(nèi)容;第二級索引表示定義在一個數(shù)據(jù)庫上的多個數(shù)據(jù)庫操作集,以數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件描述的命令碼為索引,封裝所有操作元素的數(shù)據(jù)庫訪問操作對象作為索引內(nèi)容,所述的操作元素包括條件前串、條件數(shù)組和條件后串。執(zhí)行完上述步驟,就可以處理數(shù)據(jù)庫訪問的請求了,請看圖6所示處理高層數(shù)據(jù)庫訪問請求的流程圖,包括下面的步驟步驟601接收高層應(yīng)用系統(tǒng)的數(shù)據(jù)庫訪問請求;步驟602從所述接收到的數(shù)據(jù)庫訪問請求中提取出查詢協(xié)議的命令碼及條件參數(shù);步驟603在數(shù)據(jù)庫訪問操作倉庫中查找該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象是否存在,如查找到該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象,則執(zhí)行步驟604獲取該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象,從中提取出條件前串、條件數(shù)組和條件后串信息,以條件前串+條件數(shù)組+條件參數(shù)+條件后串的方式封裝SQL語句,沒有查找到該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象,則拋出數(shù)據(jù)庫訪問操作異常,結(jié)束操作;步驟605封裝完SQL語句后,需要向數(shù)據(jù)庫連接池管理器申請一個有效的、空余連接,如果碰巧數(shù)據(jù)庫連接池中的連接都被占用,則需要判斷一下當(dāng)前連接池中的連接數(shù)是否已達(dá)到最大上限,如果達(dá)到,則需要等待一會,重新提申請,否則連接池管理器會直接創(chuàng)建一個新連接;步驟606得到可用連接,執(zhí)行封裝的SQL語句,并將結(jié)果返回給高層應(yīng)用,從而完成一次完整的數(shù)據(jù)庫訪問處理流程。上述數(shù)據(jù)庫訪問處理的流程,高層應(yīng)用只需傳入命令碼和條件參數(shù),剩余的所有工作(獲取數(shù)據(jù)庫連接、封裝SQL、返回結(jié)果、釋放數(shù)據(jù)庫連接)都由訪問層完成。高層并不用關(guān)心持久層的資源調(diào)度等,即高層和持久層之間是透明的,由于面向?qū)ο蠹胺謱蛹夹g(shù)的廣泛應(yīng)用,本發(fā)明開發(fā)的數(shù)據(jù)庫系統(tǒng)擴展性極好,可提高開發(fā)的效率,節(jié)省開發(fā)的成本。更好的說明本發(fā)明的方法,下面以增加一種新的數(shù)據(jù)庫訪問操作為例說明本發(fā)明的方法,這里先假設(shè)網(wǎng)管數(shù)據(jù)庫nmsDB中包含一日志信息表syslogTable,表定義如下<prelisting-type="program-listing"> createtablesyslogTable ( StartTimedatetimenotnull,/*起始時間,接收到日志報文的時間*/ DevTypeintnotnull,/*發(fā)送日志報文設(shè)備的類型*/ Facilityintnotnull,/*日志來源*/ Severityintnotnull,/*日志級別*/ IPAddrvarchar(16)notnull,/*發(fā)送UDP報文的設(shè)備IP地址*/ Mnenonicvarchar(32)null,/*助記符*/ )</pre>現(xiàn)在,我們需要基于該表添加一種新的數(shù)據(jù)庫訪問操作——返回日志起始時間(StartTime)處于用戶輸入的時間段內(nèi)的所有日志信息。要使用本發(fā)明完成該功能,包括如下步驟1.向數(shù)據(jù)庫訪問操作描述文件中添加如下的一段文字,即可完成從數(shù)據(jù)庫獲取滿足條件的數(shù)據(jù)源<prelisting-type="program-listing"> ?。?!--sysloyqueryingreportbytimerange--> <協(xié)議> ?。济畲a>523</命令碼> ?。紬l件前串>selectsyslogTable.IPAddr,syslogTable.StartTime, syslogTable.Severity,syslogTable.Mnenonic,<dpn="d13"/> syslogTable.Facility,syslogTable.DevType fromslaVrp30Tab</條件前串> ?。紬l件數(shù)組> ?。紬l件>syslogTable.StartTime>=</條件> ?。紬l件>syslogTable.StartTime<=</條件> ?。?條件數(shù)組> ?。?協(xié)議></pre>2.高層應(yīng)用定制一個顯示界面,可以是JSP的,將封裝的查詢結(jié)果顯示出來。上述增加一種新的數(shù)據(jù)庫訪問操作并不需要重新編碼實現(xiàn),而只是針對這種數(shù)據(jù)庫訪問操作所需的SQL語句在描述文件中添加新的協(xié)議描述。如上述定義了命令碼為523,在條件前串中定義了關(guān)鍵詞select及from(表名),然后條件數(shù)組中定義了數(shù)據(jù)庫操作的若干條件(item),這里條件數(shù)組定義了起始時間(StartTime)處于用戶輸入的時間段內(nèi),實際上按照不同的需要還可以添加新的條件,或者以條件后串的形式增加新的附加條件,由于數(shù)據(jù)庫訪問操作的參數(shù)是在描述文件中定義的,并不需要重新編碼實現(xiàn),也即對數(shù)據(jù)庫訪問的流程編碼固化,在新增加數(shù)據(jù)庫訪問操作時,涉及的只是數(shù)據(jù)庫訪問操作的參數(shù)發(fā)生變化,在描述文件中添加新的描述文件即可。現(xiàn)有技術(shù)一旦訪問操作的參數(shù)發(fā)生變化,就需要重新編碼,這種重復(fù)編碼形成大量的冗余代碼,而且耗費多余的系統(tǒng)資源及人力成本,而本發(fā)明中,只需添加描述文件,并不需要重新編碼。如上述的,在描述文件添加如上的描述,在數(shù)據(jù)庫訪問時,讀取所述的描述文件,初始化訪問操作對象后,高層應(yīng)用只需傳入執(zhí)行數(shù)據(jù)庫訪問操作的參數(shù),如對這個新增加的數(shù)據(jù)庫訪問操作,高層應(yīng)用輸入訪問操作的命令碼和條件參數(shù)即可,如果用戶需要的是2000年5月1日9點到12點這個時間段的系統(tǒng)日志信息,則輸入命令碼523和起始時間(StartTime)的條件參數(shù)syslogTable.StartTime>=2000年5月1日9點;syslogTable.StartTime<=2000年5月1日12點,高層應(yīng)用將上述的命令碼和條件參數(shù)傳入,其余的數(shù)據(jù)庫訪問操作流程獲取數(shù)據(jù)庫的連接,SQL參數(shù)的封裝及返回訪問結(jié)果則編碼固化,這樣,可減少大量的冗余代碼,且提高了開發(fā)的效率。進(jìn)一步闡述本發(fā)明,請參看圖7所示的本發(fā)明數(shù)據(jù)庫訪問服務(wù)裝置的組成結(jié)構(gòu)圖,所述數(shù)據(jù)庫訪問服務(wù)裝置用于處理高層應(yīng)用的數(shù)據(jù)庫訪問請求,該裝置包括以下組成模塊描述模塊701,用于建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件和數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件;第一解析模塊702,用于讀取上述描述模塊建立的數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,解析出初始化數(shù)據(jù)庫連接池所需的連接參數(shù);第二解析模塊703,用于讀取上述描述模塊建立的數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,解析出初始化數(shù)據(jù)庫訪問操作對象所需的操作協(xié)議;處理模塊704,用于根據(jù)數(shù)據(jù)庫訪問請求,得到數(shù)據(jù)庫訪問操作對象,并從所述的數(shù)據(jù)庫連接池中獲取有效連接,執(zhí)行數(shù)據(jù)庫訪問并返回結(jié)果。參考圖8所示,所述處理模塊704進(jìn)一步包括以下模塊提取模塊801,用于從接收到的數(shù)據(jù)庫訪問請求中提取出查詢協(xié)議的命令碼;查找模塊802,用于根據(jù)提取模塊801提取出的命令碼查找數(shù)據(jù)庫訪問操作倉庫中該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象;封裝模塊803,用于將查找模塊802查找到的數(shù)據(jù)庫訪問操作對象中封裝的操作元素和條件參數(shù)一起封裝SQL語句,所述操作元素包括條件前串、條件數(shù)組、條件后串信息;執(zhí)行模塊804,用于從連接池得到可用連接,執(zhí)行封裝模塊803封裝后的SQL語句,并向上層返回SQL操作結(jié)果。下面參考圖7和圖8具體說明本發(fā)明的數(shù)據(jù)庫訪問服務(wù)裝置的工作原理,本發(fā)明的數(shù)據(jù)庫訪問服務(wù)裝置主要實現(xiàn)訪問層的功能,即完成高層應(yīng)用和持久層之間數(shù)據(jù)庫連接等數(shù)據(jù)庫訪問的功能,具體的,所述的描述模塊701可采用XML的編輯器實現(xiàn)。工作時,所述數(shù)據(jù)庫訪問服務(wù)裝置通過所述的描述模塊701建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)及數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,然后通過第一解析模塊702讀取所述描述模塊建立的數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,解析出初始化數(shù)據(jù)庫連接池所需的連接參數(shù),然后應(yīng)用這些連接參數(shù)執(zhí)行初始化數(shù)據(jù)庫系統(tǒng)連接池,以便創(chuàng)建指定數(shù)據(jù)庫的連接。然后第二解析模塊703繼續(xù)讀取數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,解析出初始化數(shù)據(jù)庫訪問操作對象所需的協(xié)議簇描述,根據(jù)所述的協(xié)議簇描述,創(chuàng)建數(shù)據(jù)庫訪問操作倉庫,初始化數(shù)據(jù)庫訪問操作對象,然后由處理模塊704進(jìn)行處理,所述處理模塊704在具體處理數(shù)據(jù)庫訪問時,首先接收高層應(yīng)用的數(shù)據(jù)庫訪問請求,由提取模塊801從所述接收到的數(shù)據(jù)庫訪問請求中提取出查詢協(xié)議的命令碼和條件參數(shù)并交給查找模塊;所述查找模塊802,在數(shù)據(jù)庫訪問操作倉庫中查找該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象,如查找到所述的數(shù)據(jù)庫訪問操作對象,則將所述的數(shù)據(jù)庫訪問操作對象和條件參數(shù)交給封裝模塊進(jìn)行封裝,如沒有查找到,則提示用戶數(shù)據(jù)庫訪問操作異常,結(jié)束操作,而封裝模塊803,則將數(shù)據(jù)庫訪問操作對象中封裝的操作元素——條件前串、條件數(shù)組、條件后串信息和條件參數(shù)一起封裝SQL語句;最后由執(zhí)行模塊804,從連接池得到可用連接,執(zhí)行封裝模塊803封裝后的SQL語句,并返回結(jié)果。參看圖9所示的本發(fā)明數(shù)據(jù)庫訪問服務(wù)裝置與高層應(yīng)用系統(tǒng)結(jié)合實現(xiàn)數(shù)據(jù)庫訪問的示意圖。高層應(yīng)用系統(tǒng)只需傳入命令碼和條件參數(shù),其余剩余的訪問數(shù)據(jù)庫的工作都由本發(fā)明的數(shù)據(jù)庫訪問服務(wù)裝置完成。本發(fā)明的數(shù)據(jù)庫訪問服務(wù)裝置由可變的數(shù)據(jù)庫系統(tǒng)連接參數(shù)和數(shù)據(jù)庫訪問操作的描述文件和編碼固化的數(shù)據(jù)庫訪問處理流程模塊組成,在數(shù)據(jù)庫連接參數(shù)及數(shù)據(jù)庫系統(tǒng)訪問操作的參數(shù)發(fā)生變化時,只需修改相應(yīng)的描述文件即可,不用重新編碼,而高層并不需參與持久層的資源調(diào)度,即獲取數(shù)據(jù)庫連接,封裝SQL語句以及執(zhí)行封裝后的SQL語句并返回結(jié)果的流程都由本發(fā)明數(shù)據(jù)庫訪問服務(wù)裝置實現(xiàn),也即本發(fā)明的數(shù)據(jù)庫訪問服務(wù)裝置實現(xiàn)了訪問層的功能,由于高層、訪問層及持久層等各層次之間彼此透明,擴展性較好,有利于將來的進(jìn)一步開發(fā)應(yīng)用。以上所述,僅為本發(fā)明的優(yōu)選實施例而已,非因此即局限本發(fā)明的權(quán)利范圍,例如對數(shù)據(jù)庫系統(tǒng)連接參數(shù)和數(shù)據(jù)庫訪問操作的參數(shù)的描述還可用其他的描述語言如HTML,或者自定義的描述語言等進(jìn)行描述,因此,在不脫離本發(fā)明的實質(zhì)和范圍的情況下,凡運用本發(fā)明說明書及附圖內(nèi)容所為的等效變化,均理同包含于本發(fā)明的權(quán)利要求范圍內(nèi)。權(quán)利要求1.一種訪問數(shù)據(jù)庫的方法,其特征在于,該方法包括以下步驟a)建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,所述描述文件包括對多種數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述;b)建立數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,所述描述文件包括對數(shù)據(jù)庫系統(tǒng)中訪問操作數(shù)據(jù)的多個協(xié)議簇的描述;c)讀取所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,初始化數(shù)據(jù)庫連接池;d)讀取所述數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,初始化數(shù)據(jù)庫訪問操作對象;e)根據(jù)數(shù)據(jù)庫訪問請求,獲取數(shù)據(jù)庫訪問操作對象,并從所述的數(shù)據(jù)庫連接池中獲取有效連接,執(zhí)行數(shù)據(jù)庫訪問并返回結(jié)果。2.根據(jù)權(quán)利要求1所述的訪問數(shù)據(jù)庫的方法,其特征在于,步驟a)所述對多種數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述包括對數(shù)據(jù)庫系統(tǒng)類型標(biāo)識和數(shù)據(jù)庫系統(tǒng)中所有數(shù)據(jù)庫的描述。3.根據(jù)權(quán)利要求2所述的訪問數(shù)據(jù)庫的方法,其特征在于,所述對數(shù)據(jù)庫系統(tǒng)類型標(biāo)識的描述包括對以下信息的描述數(shù)據(jù)庫系統(tǒng)類型名和數(shù)據(jù)庫驅(qū)動程序。4.根據(jù)權(quán)利要求2所述的訪問數(shù)據(jù)庫的方法,其特征在于,對數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)庫的描述包括對以下信息的描述數(shù)據(jù)庫名稱、統(tǒng)一資源定位符、用戶名和密碼。5.根據(jù)權(quán)利要求1所述的訪問數(shù)據(jù)庫的方法,其特征在于,步驟b)所述對數(shù)據(jù)庫系統(tǒng)中訪問操作數(shù)據(jù)的協(xié)議簇的描述包括對以下信息的描述數(shù)據(jù)庫名稱和與該數(shù)據(jù)庫相關(guān)的所有數(shù)據(jù)庫訪問操作的協(xié)議。6.根據(jù)權(quán)利要求5所述的訪問數(shù)據(jù)庫的方法,其特征在于,所述對數(shù)據(jù)庫相關(guān)的所有數(shù)據(jù)庫訪問操作的協(xié)議的描述包括對以下信息的描述命令碼、條件前串,所述命令碼定義數(shù)據(jù)庫訪問操作的命令字,所述條件前串定義SQL語句的關(guān)鍵字、表名及多表關(guān)聯(lián)條件。7.根據(jù)權(quán)利要求6所述的訪問數(shù)據(jù)庫的方法,其特征在于,所述對數(shù)據(jù)庫相關(guān)的所有數(shù)據(jù)庫訪問操作的協(xié)議的描述還包括對以下信息的描述條件數(shù)組、條件后串,所述所述條件數(shù)組定義SQL語句中where條件對應(yīng)的字段名和關(guān)系運算符,所述條件后串定義附加的條件。8.根據(jù)權(quán)利要求1至7任一項所述的訪問數(shù)據(jù)庫的方法,其特征在于所述的描述文件采用擴展標(biāo)記語言(XML)建立。9.根據(jù)權(quán)利要求8所述的訪問數(shù)據(jù)庫的方法,其特征在于,步驟c)包括以下步驟創(chuàng)建數(shù)據(jù)庫連接池管理器,從所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件讀取數(shù)據(jù)庫系統(tǒng)類型標(biāo)識;根據(jù)所述的數(shù)據(jù)庫系統(tǒng)類型標(biāo)識,創(chuàng)建該類型數(shù)據(jù)庫系統(tǒng)的連接池;使用從所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件獲取的數(shù)據(jù)庫驅(qū)動程序標(biāo)簽值創(chuàng)建一個數(shù)據(jù)庫連接驅(qū)動器實例,調(diào)用該實例獲取數(shù)據(jù)庫系統(tǒng)連接的方法,將所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中描述的數(shù)據(jù)庫名稱、統(tǒng)一資源定位符、密碼標(biāo)簽中的值作為連接參數(shù)傳入以創(chuàng)建指定數(shù)據(jù)庫的連接;以創(chuàng)建的連接作為一個有效、空余連接加入連接池,并以數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件中描述的數(shù)據(jù)庫名稱為索引,將該連接池加入連接池管理器中。10.根據(jù)權(quán)利要求9所述的訪問數(shù)據(jù)庫的方法,其特征在于,步驟d)包括下述步驟創(chuàng)建數(shù)據(jù)庫訪問操作倉庫;創(chuàng)建存放數(shù)據(jù)庫所有訪問操作的容器;初始化數(shù)據(jù)庫訪問操作對象實例;以所述數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件中描述的命令碼為索引,將所述訪問操作的描述文件中描述的數(shù)據(jù)庫訪問操作對象加入容器;以所述數(shù)據(jù)系統(tǒng)訪問操作的描述文件中描述的數(shù)據(jù)庫名稱為索引,將所述容器加入數(shù)據(jù)庫訪問操作倉庫。11.根據(jù)權(quán)利要求10所述的訪問數(shù)據(jù)庫的方法,其特征在于,所述的數(shù)據(jù)庫訪問操作倉庫是二級索引結(jié)構(gòu),該二級索引結(jié)構(gòu)的第一級索引表示多個數(shù)據(jù)庫,以所述數(shù)據(jù)庫訪問操作描述文件中描述的數(shù)據(jù)庫名稱為索引,定義在該數(shù)據(jù)庫上的所有數(shù)據(jù)庫訪問操作集作為索引內(nèi)容;第二級索引表示定義在一個數(shù)據(jù)庫上的多個數(shù)據(jù)庫訪問操作集,以所述數(shù)據(jù)庫訪問操作描述文件中描述的命令碼為索引,封裝所有訪問操作元素的數(shù)據(jù)庫訪問對象作為索引內(nèi)容,所述的訪問操作元素包括條件前串、條件數(shù)組和條件后串。12.根據(jù)權(quán)利要求11所述的訪問數(shù)據(jù)庫的方法,其特征在于,步驟e)包括以下步驟從接收到的數(shù)據(jù)庫訪問請求中提取出查詢協(xié)議的命令碼及條件參數(shù);在數(shù)據(jù)庫訪問操作倉庫中查找該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象,如查找到該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象,則從中提取出條件前串、條件數(shù)組和條件后串信息,并與條件參數(shù)一起封裝SQL語句,如沒有查找到,則拋出數(shù)據(jù)庫訪問操作異常,結(jié)束操作;從連接池得到可用連接,執(zhí)行封裝后的SQL語句,并返回結(jié)果。13.一種訪問數(shù)據(jù)庫的裝置,用于處理數(shù)據(jù)庫訪問請求,其特征在于,該裝置包括描述模塊,用于建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件和數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件;第一解析模塊,用于讀取上述描述模塊建立的數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,解析出初始化數(shù)據(jù)庫連接池所需的連接參數(shù);第二解析模塊,用于讀取上述描述模塊建立的數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,解析出初始化數(shù)據(jù)庫訪問操作對象所需的操作協(xié)議;處理模塊,用于根據(jù)數(shù)據(jù)庫訪問請求,獲取數(shù)據(jù)庫訪問操作對象,并從所述數(shù)據(jù)庫連接池中獲取有效連接,執(zhí)行數(shù)據(jù)庫訪問并返回結(jié)果。14.根據(jù)權(quán)利要求13所述的訪問數(shù)據(jù)庫的裝置,其特征在于所述處理模塊進(jìn)一步包括以下模塊提取模塊,用于從接收到的數(shù)據(jù)庫訪問請求中提取出查詢協(xié)議的命令碼;查找模塊,用于根據(jù)提取模塊提取出的命令碼查找數(shù)據(jù)庫訪問操作倉庫中該命令碼對應(yīng)的數(shù)據(jù)庫訪問操作對象;封裝模塊,用于將查找模塊查找到的數(shù)據(jù)庫訪問操作對象中封裝的操作元素和條件參數(shù)一起封裝SQL語句,所述操作元素包括條件前串、條件數(shù)組、條件后串信息;執(zhí)行模塊,用于從連接池得到可用連接,執(zhí)行封裝模塊封裝后的SQL語句,并返回結(jié)果。全文摘要本發(fā)明公開一種訪問數(shù)據(jù)庫的方法及裝置,所述方法包括以下步驟a)建立數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件;b)建立數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件;c)讀取所述數(shù)據(jù)庫系統(tǒng)連接參數(shù)的描述文件,初始化數(shù)據(jù)庫連接池;d)讀取所述數(shù)據(jù)庫系統(tǒng)訪問操作的描述文件,初始化數(shù)據(jù)庫訪問操作對象;e)根據(jù)數(shù)據(jù)庫訪問請求,獲取數(shù)據(jù)庫訪問操作對象,從所述的數(shù)據(jù)庫連接池中獲取有效連接,執(zhí)行數(shù)據(jù)庫訪問并返回結(jié)果。所述裝置包括描述模塊、解析模塊和處理模塊。本發(fā)明通過描述數(shù)據(jù)庫訪問的連接參數(shù)及數(shù)據(jù)訪問操作的參數(shù),可減少冗余代碼量,提高系統(tǒng)運行效率。另外,由于高層應(yīng)用并不參與持久層調(diào)度,擴展性較好,有利用將來進(jìn)一步的開發(fā)。文檔編號G06F17/30GK1567301SQ0313779公開日2005年1月19日申請日期2003年6月23日優(yōu)先權(quán)日2003年6月23日發(fā)明者董欣,史揚申請人:華為技術(shù)有限公司