專利名稱:數(shù)據(jù)訪問(wèn)處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)訪問(wèn)處理方法及系統(tǒng)。
背景技術(shù):
目前,業(yè)務(wù)系統(tǒng)開(kāi)發(fā)過(guò)程中,通常會(huì)采用不同的數(shù)據(jù)訪問(wèn)控制方案來(lái)實(shí)現(xiàn)對(duì)存放在數(shù)據(jù)庫(kù)中的數(shù)據(jù)的訪問(wèn)?,F(xiàn)有技術(shù)中采用中間件技術(shù)來(lái)實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)。如 Hibernate中間件,它可以在開(kāi)發(fā)業(yè)務(wù)系統(tǒng)的時(shí)候直接調(diào)用Hibernate中間件的一些封裝, 不需要直接調(diào)用ODBC (Open DatabaseConnectivity,開(kāi)放數(shù)據(jù)庫(kù)互連)或者JDBC (Java Data Base Connectivity, java數(shù)據(jù)庫(kù)連接)的接口,在更換數(shù)據(jù)庫(kù)類型時(shí)也不需要更改代碼。在電信領(lǐng)域中也會(huì)采用一些特有的中間件來(lái)進(jìn)行數(shù)據(jù)訪問(wèn)。在實(shí)現(xiàn)上述數(shù)據(jù)訪問(wèn)的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中采用的中間件與開(kāi)發(fā)出來(lái)的業(yè)務(wù)耦合過(guò)緊。如在電信業(yè)務(wù)系統(tǒng)中往往會(huì)封裝自己的中間件來(lái)使用,但是這種開(kāi)發(fā)模式所開(kāi)發(fā)出來(lái)的業(yè)務(wù)只能依賴它這種特有的中間件來(lái)進(jìn)行數(shù)據(jù)訪問(wèn),該業(yè)務(wù)需要調(diào)用其他中間件實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)時(shí),就需要重新基于其他中間件進(jìn)行再次開(kāi)發(fā)?,F(xiàn)有技術(shù)中還沒(méi)有一種通用性的數(shù)據(jù)訪問(wèn)實(shí)現(xiàn)方案使得開(kāi)發(fā)出來(lái)的業(yè)務(wù)可以支持多種中間件。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種數(shù)據(jù)訪問(wèn)處理方法及系統(tǒng),采用該方法開(kāi)發(fā)出來(lái)的業(yè)務(wù)可以實(shí)現(xiàn)支持多種中間件。為了達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種數(shù)據(jù)訪問(wèn)處理的方法,包括至少兩種中間件,該方法包括接收輸入的數(shù)據(jù)訪問(wèn)方式配置信息;根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句;生成調(diào)用所述數(shù)據(jù)操作語(yǔ)句的數(shù)據(jù)訪問(wèn)代碼。一種數(shù)據(jù)訪問(wèn)處理系統(tǒng),包括至少兩種中間件,該系統(tǒng)包括接收單元,用于接收輸入數(shù)據(jù)訪問(wèn)方式配置信息;第一生成單元,用于根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句;第二生成單元,用于生成調(diào)用所述數(shù)據(jù)操作語(yǔ)句的數(shù)據(jù)訪問(wèn)代碼。本發(fā)明實(shí)施例所提供的數(shù)據(jù)訪問(wèn)處理方法,首先接收開(kāi)發(fā)業(yè)務(wù)系統(tǒng)時(shí)輸入的數(shù)據(jù)訪問(wèn)方式配置信息,然后根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句,該數(shù)據(jù)操作語(yǔ)句可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中所構(gòu)建的表進(jìn)行相應(yīng)數(shù)據(jù)訪問(wèn)操作。最后生成調(diào)用所述數(shù)據(jù)操作語(yǔ)句的數(shù)據(jù)訪問(wèn)代碼,該數(shù)據(jù)訪問(wèn)代碼可以實(shí)現(xiàn)所開(kāi)發(fā)后的業(yè)務(wù)系統(tǒng)的數(shù)據(jù)訪問(wèn)功能。由于本技術(shù)方案中會(huì)生成多個(gè)中間件中的每個(gè)中間件調(diào)用時(shí)對(duì)應(yīng)的數(shù)據(jù)訪問(wèn)方式配置信息,這樣采用本技術(shù)方案開(kāi)發(fā)得出的業(yè)務(wù)系統(tǒng)可以調(diào)用多個(gè)中間件中的任何一個(gè)中間件在數(shù)據(jù)庫(kù)中進(jìn)行訪問(wèn),在需要更換所調(diào)用的中間件時(shí),無(wú)須再重新基于更換的中間件進(jìn)行業(yè)務(wù)系統(tǒng)的開(kāi)發(fā),直接調(diào)用更換后的中間件對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)言就可以實(shí)現(xiàn)數(shù)據(jù)的訪問(wèn)。解決了現(xiàn)有技術(shù)中開(kāi)發(fā)出來(lái)的業(yè)務(wù)系統(tǒng)無(wú)法支持多種中間件的問(wèn)題。另外,由于本技術(shù)方案中可以根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息直接生成訪問(wèn)數(shù)據(jù)庫(kù)的數(shù)據(jù)操作語(yǔ)句,與現(xiàn)有技術(shù)中需要手寫相關(guān)的數(shù)據(jù)操作語(yǔ)句才能實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn)相比,提高業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)效率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為實(shí)施例1中數(shù)據(jù)訪問(wèn)處理的方法的流程圖;圖2為實(shí)施例1中數(shù)據(jù)訪問(wèn)處理的系統(tǒng)結(jié)構(gòu)圖;圖3為實(shí)施例2中數(shù)據(jù)訪問(wèn)處理的方法的流程圖;圖4為實(shí)施例2中數(shù)據(jù)訪問(wèn)處理的系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例1 本實(shí)施例提供一種數(shù)據(jù)訪問(wèn)處理的方法,包括至少兩種中間件,如圖1所示,該方法包括如下步驟101、接收輸入的數(shù)據(jù)訪問(wèn)方式配置信息。根據(jù)所開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)需求的不同,輸入的數(shù)據(jù)訪問(wèn)方式也不相同。比如開(kāi)發(fā)一個(gè)學(xué)生成績(jī)管理系統(tǒng),輸入的數(shù)據(jù)訪問(wèn)方式配置信息可以為添加記錄、刪除記錄、修改記錄或者查詢記錄等這幾種數(shù)據(jù)訪問(wèn)方式中任何幾種的組合。102、根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句(Data Manipulation Language,數(shù)據(jù)操作語(yǔ)句)。該DML用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的數(shù)據(jù)訪問(wèn)操作。比如所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息中包括添加記錄的配置信息,那么生成的DML中包含實(shí)現(xiàn)添加記錄的相關(guān)語(yǔ)句。103、生成調(diào)用所述DML的數(shù)據(jù)訪問(wèn)代碼。該數(shù)據(jù)訪問(wèn)代碼調(diào)用中間件提供的接口去執(zhí)行所生成DML,完成數(shù)據(jù)的訪問(wèn)。與現(xiàn)有技術(shù)相比,本實(shí)施例中開(kāi)發(fā)出來(lái)的業(yè)務(wù)系統(tǒng)所包含的多個(gè)DML文件分別與各自被調(diào)用時(shí)的中間件一一對(duì)應(yīng),從而,可以在更換業(yè)務(wù)系統(tǒng)所調(diào)用的中間件時(shí),無(wú)須重新針對(duì)更換后的中間件進(jìn)行開(kāi)發(fā)。實(shí)現(xiàn)了所開(kāi)發(fā)出來(lái)的業(yè)務(wù)系統(tǒng)支持多個(gè)中間件。
相應(yīng)地,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)訪問(wèn)處理系統(tǒng),該系統(tǒng)中包括至少兩種中間件,如圖2所示,該系統(tǒng)包括接收單元21、第一生成單元22和第二生成單元23。其中,接收單元21用于接收輸入的數(shù)據(jù)訪問(wèn)方式配置信息。根據(jù)所開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)需求的不同,輸入的數(shù)據(jù)訪問(wèn)方式也不相同。第一生成單元22用于根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句。該DML用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的數(shù)據(jù)訪問(wèn)操作。第二生成單元23用于生成調(diào)用所述數(shù)據(jù)操作語(yǔ)句的數(shù)據(jù)訪問(wèn)代碼。這樣采用本技術(shù)方案開(kāi)發(fā)得出的業(yè)務(wù)系統(tǒng)可以調(diào)用多個(gè)中間件中的任何一個(gè)中間件在數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)訪問(wèn),在需要更換所調(diào)用的中間件時(shí),無(wú)須再重新基于更換的中間件進(jìn)行業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)。解決了現(xiàn)有技術(shù)中開(kāi)發(fā)出來(lái)的業(yè)務(wù)系統(tǒng)無(wú)法支持多種中間件的問(wèn)題。實(shí)施例2 本實(shí)施例提供一種數(shù)據(jù)訪問(wèn)處理的方法,包括至少兩種中間件,如圖3所示,該方法包括如下步驟301、接收輸入的數(shù)據(jù)模型定義信息和數(shù)據(jù)訪問(wèn)方式配置信息。根據(jù)所開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)需求的不同,輸入的數(shù)據(jù)模型定義信息和數(shù)據(jù)訪問(wèn)方式也不相同。比如開(kāi)發(fā)一個(gè)學(xué)生成績(jī)管理系統(tǒng),此時(shí)可以輸入多個(gè)數(shù)據(jù)模型定義信息,如學(xué)生模型基本信息,各科成績(jī)模型信息,某個(gè)學(xué)生的成績(jī)單模型信息等。其中每個(gè)數(shù)據(jù)模型定義信息包括數(shù)據(jù)模型的名稱及其相映射的預(yù)設(shè)表的名稱、數(shù)據(jù)模型的成員及其相映射的預(yù)設(shè)表中的字段。數(shù)據(jù)模型的成員的屬性信息包括成員名稱、主鍵、外鍵、索引項(xiàng)和字段類型。一個(gè)數(shù)據(jù)模型對(duì)應(yīng)數(shù)據(jù)庫(kù)里的一張表,這里所提到的模型可以為一個(gè)普通的類,該類中的一個(gè)成員映射為表中的一個(gè)字段。輸入的數(shù)據(jù)訪問(wèn)方式可以為添加記錄、刪除記錄、修改記錄或者查詢記錄等這幾種數(shù)據(jù)訪問(wèn)方式中任何幾種的組合。上述數(shù)據(jù)模型定義信息和數(shù)據(jù)訪問(wèn)方式的配置信息都可以在可視化的界面中輸入。302、生成上述輸入的數(shù)據(jù)模型定義信息在每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)定義配置文件。每個(gè)中間件的類型不同,其所對(duì)應(yīng)的數(shù)據(jù)定義配置文件也是不相同的。比如有的中間件需要數(shù)據(jù)定義配置文件為DDL (Data Define Language,數(shù)據(jù)定義語(yǔ)言)類型的,此時(shí)需要生產(chǎn)所述中間件對(duì)應(yīng)的DDL類型的數(shù)據(jù)定義配置文件。在業(yè)務(wù)運(yùn)行時(shí),由業(yè)務(wù)部署工具進(jìn)行調(diào)用所述DDL在數(shù)據(jù)庫(kù)上實(shí)現(xiàn)表的構(gòu)建。而有些中間件如Hibernate,所使用的數(shù)據(jù)定義配置文件為對(duì)象關(guān)系映射文件類型。此時(shí)就需要針對(duì)每種中間件,分別生成輸入的數(shù)據(jù)模型定義信息在每個(gè)中間件下對(duì)應(yīng)的對(duì)象關(guān)系映射文件類型的數(shù)據(jù)定義配置文件。從而,在開(kāi)發(fā)后的業(yè)務(wù)系統(tǒng)運(yùn)行時(shí),通過(guò)當(dāng)前使用的中間件提供的接口執(zhí)行當(dāng)前使用的中間件對(duì)應(yīng)的對(duì)象關(guān)系映射文件類型的數(shù)據(jù)定義配置文件在數(shù)據(jù)庫(kù)上構(gòu)建表,當(dāng)前使用的中間件對(duì)應(yīng)的數(shù)據(jù)定義配置文件從生成的每個(gè)中間件對(duì)應(yīng)的數(shù)據(jù)定義配置文件中選擇。比如步驟301中可以通過(guò)在圖形化的界面中輸入學(xué)生模型基本信息,該學(xué)生模型基本信息包括該學(xué)生模型的名稱為Mudent,其對(duì)應(yīng)的相映射的預(yù)設(shè)表的名稱為Sample, 該學(xué)生模型的成員中的一個(gè)成員名稱為studentID,可以設(shè)置該studentID為主鍵,該 studentID成員所映射在表Sample中的字段可以設(shè)置為Sample_ID,該studentID采用數(shù)據(jù)類型為建立學(xué)生模型時(shí)所使用的語(yǔ)言中支持的數(shù)據(jù)類型,如C++語(yǔ)言下int類型,其映射的Sample_ID字段的類型為當(dāng)前使用的數(shù)據(jù)庫(kù)支持的數(shù)字類型,如INTEGER類型。當(dāng)前所使用語(yǔ)言的數(shù)據(jù)類型與數(shù)據(jù)庫(kù)字段類型滿足預(yù)設(shè)字段類型映射規(guī)則。然后生成的數(shù)據(jù)定義配置文件中就包含了這些學(xué)生模型配置的基本信息,從而在通過(guò)其對(duì)應(yīng)的中間件提供的接口執(zhí)行該數(shù)據(jù)定義配置文件時(shí),根據(jù)這些學(xué)生模型配置的基本信息就可以在數(shù)據(jù)庫(kù)中構(gòu)建表Sample,該表Sample中Sample_ID字段為主鍵,并且為該Sample_ID字段類型為INTEGER 類型。通過(guò)采用上述方式定義數(shù)據(jù)模型,并創(chuàng)建該數(shù)據(jù)模型與表的映射,可以實(shí)現(xiàn)數(shù)據(jù)模型與數(shù)據(jù)訪問(wèn)的分離。另外,該學(xué)生模型基本信息中的Sample_ID采用的字段類型也可以采用一種自定義的中間映射類型,無(wú)須直接寫出所使用的數(shù)據(jù)庫(kù)所支持的字段類型。在業(yè)務(wù)系統(tǒng)需要在數(shù)據(jù)庫(kù)中創(chuàng)建表時(shí),根據(jù)當(dāng)前所使用的數(shù)據(jù)庫(kù)類型,再將該中間映射類型映射為在當(dāng)前所使用的數(shù)據(jù)庫(kù)對(duì)應(yīng)的字段類型。也就是說(shuō)在開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)中利用一個(gè)中間映射類型可以分別映射到在不同數(shù)據(jù)庫(kù)下所對(duì)應(yīng)的字段類型,如采用一個(gè)中間映射類型分別對(duì)應(yīng) Informix數(shù)據(jù)庫(kù)中使用的VARCHAR類型和Oracle數(shù)據(jù)庫(kù)中使用VARCHAR2,因而可以實(shí)現(xiàn)對(duì)多種數(shù)據(jù)庫(kù)的支持。303、根據(jù)所述輸入的數(shù)據(jù)模型定義信息和所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句,也就是生成輸入的數(shù)據(jù)模型定義信息和輸入的數(shù)據(jù)訪問(wèn)方式配置信息對(duì)應(yīng)的DML。該DML用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的數(shù)據(jù)訪問(wèn)操作。由于數(shù)據(jù)訪問(wèn)方式配置信息包括以下信息中的一種或多種添加記錄配置信息、刪除記錄圖元配置信息、修改記錄配置信息或查詢記錄配置信息。而每種數(shù)據(jù)訪問(wèn)方式配置信息的內(nèi)容可以包括輸入配置、輸出配置和訪問(wèn)結(jié)果配置。假設(shè)步驟301中所輸入的數(shù)據(jù)訪問(wèn)方式配置信息中包含上述四種配置信息,那么,添加記錄配置信息的內(nèi)容中,輸入配置為數(shù)據(jù)對(duì)象,輸出配置為無(wú),訪問(wèn)結(jié)果配置為成功或者失敗。如需要為上述Student數(shù)據(jù)模型對(duì)應(yīng)的表Sample中添加一個(gè)記錄,此時(shí)輸入的相應(yīng)記錄可以由所述輸入配置中的數(shù)據(jù)對(duì)象接收,并執(zhí)行相應(yīng)的添加操作。在生成的上述DML中就會(huì)包含用于在表Sample中添加由輸入配置中的數(shù)據(jù)對(duì)象接收的待添加記錄對(duì)應(yīng)的語(yǔ)句。刪除記錄配置信息的內(nèi)容中輸入配置為數(shù)據(jù)類和條件,其中條件包括選擇待刪除的屬性、屬性對(duì)應(yīng)的值、關(guān)系或條件的組合關(guān)系,輸出配置為無(wú),訪問(wèn)結(jié)果配置為成功或者失敗。如刪除student模型中的studentID成員是10的記錄,這時(shí)由輸入配置中的數(shù)據(jù)類接收待處理的student對(duì)象,同時(shí)該刪除記錄配置信息可以通過(guò)可視化的圖元展示該 student的成員,你可以選擇以那個(gè)成員作為條件,并且條件可以手動(dòng)配置,此時(shí)選擇待刪除的成員studentID,并且選擇一個(gè)操作符“=”,值可以填寫10。那么生成的DML語(yǔ)句中就包含了用于在student模型所映射的表Sample中的刪除studentID成員映射的Sample_ID 字段的值為10的這條記錄對(duì)應(yīng)的語(yǔ)句。修改記錄配置信息的內(nèi)容中輸入配置為數(shù)據(jù)類和條件,包括選擇待修改的屬性、 屬性對(duì)應(yīng)的值、關(guān)系或條件的組合關(guān)系,輸出配置為無(wú),訪問(wèn)結(jié)果配置為成功或者失敗。該修改記錄配置信息的輸入配置中數(shù)據(jù)類接收待修改的數(shù)據(jù)對(duì)象,條件在使用時(shí)與刪除記錄配置信息中的條件使用時(shí)類似。所生成的DML語(yǔ)句中就包含了用于在接收到的數(shù)據(jù)對(duì)象中
7對(duì)待修改記錄進(jìn)行修改時(shí)對(duì)應(yīng)的語(yǔ)句。查詢記錄配置信息的內(nèi)容中輸入配置為數(shù)據(jù)類和條件,其中條件包括選擇待查詢的屬性、屬性對(duì)應(yīng)的值、關(guān)系的一個(gè)或多個(gè)組合關(guān)系,輸出配置為一個(gè)或一組對(duì)象,訪問(wèn)結(jié)果配置為成功或者失敗。該查詢對(duì)象中輸入配置中的數(shù)據(jù)類用于接收待處理的數(shù)據(jù)對(duì)象,輸出配置中的一個(gè)或一組對(duì)象用于輸出查詢的結(jié)果。該條件的使用與所述刪除記錄配置信息中的條件使用時(shí)類似。所生成的DML語(yǔ)句中就包含了用于在接收到的數(shù)據(jù)對(duì)象中對(duì)待查詢的內(nèi)容進(jìn)行查詢時(shí)對(duì)應(yīng)的語(yǔ)句。本步驟生成的DML語(yǔ)句可以直接生成到數(shù)據(jù)訪問(wèn)代碼中,作為數(shù)據(jù)訪問(wèn)代碼的一部分,也可以生成到單獨(dú)的配置文件中,如可以把DML語(yǔ)句封裝到xml格式的配置文件中, 通過(guò)訪問(wèn)這個(gè)xml的節(jié)點(diǎn)來(lái)訪問(wèn)DML。304、生成調(diào)用上述DML的數(shù)據(jù)訪問(wèn)代碼。該數(shù)據(jù)訪問(wèn)代碼調(diào)用相應(yīng)的中間件提供的接口去執(zhí)行所生成的DML,完成數(shù)據(jù)的訪問(wèn)。生成的數(shù)據(jù)定義配置文件、數(shù)據(jù)操作語(yǔ)句和數(shù)據(jù)訪問(wèn)代碼在業(yè)務(wù)運(yùn)行前會(huì)被部署到業(yè)務(wù)運(yùn)行的環(huán)境中,然后在業(yè)務(wù)運(yùn)行時(shí),執(zhí)行數(shù)據(jù)訪問(wèn)代碼,由數(shù)據(jù)訪問(wèn)代碼通過(guò)調(diào)用當(dāng)前使用的中間件提供的接口在數(shù)據(jù)庫(kù)上執(zhí)行數(shù)據(jù)操作語(yǔ)句。本實(shí)施例中開(kāi)發(fā)出來(lái)的業(yè)務(wù)系統(tǒng)所包含的多個(gè)數(shù)據(jù)定義配置文件分別與各自被調(diào)用時(shí)的中間件一一對(duì)應(yīng),從而,可以在更換業(yè)務(wù)系統(tǒng)所調(diào)用的中間件時(shí),無(wú)須重新針對(duì)更換后的中間件進(jìn)行開(kāi)發(fā)。實(shí)現(xiàn)了所開(kāi)發(fā)出來(lái)的業(yè)務(wù)系統(tǒng)支持多個(gè)中間件。另外,由于本發(fā)明實(shí)施例中的,類的數(shù)據(jù)模型定義信息與數(shù)據(jù)訪問(wèn)方式是獨(dú)立分開(kāi)的,這樣使得開(kāi)發(fā)人員可以實(shí)現(xiàn)對(duì)已經(jīng)定義好的數(shù)據(jù)模型任意不同方式的訪問(wèn),使得開(kāi)發(fā)人員訪問(wèn)數(shù)據(jù)模型更加方便便捷。相應(yīng)地,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)訪問(wèn)處理系統(tǒng),該系統(tǒng)中包括至少兩種中間件,如圖4所示,該系統(tǒng)包括接收單元41、第一生成單元42、第二生成單元43、第三生成單元44和業(yè)務(wù)部署單元45。其中,接收單元41用于接收輸入的數(shù)據(jù)模型定義信息和數(shù)據(jù)訪問(wèn)方式配置信息。 根據(jù)所開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)需求的不同,輸入的數(shù)據(jù)模型定義信息和數(shù)據(jù)訪問(wèn)方式也不相同。 該輸入的數(shù)據(jù)模型定義信息和數(shù)據(jù)訪問(wèn)方式均可以在可視化的輸入界面中輸入。第三生成單元44用于生成所述輸入的數(shù)據(jù)模型定義信息在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)定義配置文件。第一生成單元42用于根據(jù)所述輸入的數(shù)據(jù)模型定義信息和所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句DML。該DML用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的數(shù)據(jù)訪問(wèn)操作。第二生成單元43用于生成調(diào)用所述DML的數(shù)據(jù)訪問(wèn)代碼。業(yè)務(wù)部署單元45會(huì)將所述生成的數(shù)據(jù)定義配置文件、數(shù)據(jù)操作語(yǔ)句和數(shù)據(jù)訪問(wèn)代碼在業(yè)務(wù)運(yùn)行前部署到業(yè)務(wù)運(yùn)行的環(huán)境中。各個(gè)中間件提供了數(shù)據(jù)庫(kù)訪問(wèn)接口。然后在業(yè)務(wù)運(yùn)行時(shí),通過(guò)當(dāng)前使用的中間件提供的接口執(zhí)行所述當(dāng)前使用的中間件對(duì)應(yīng)的對(duì)象關(guān)系映射文件類型的數(shù)據(jù)定義配置文件在數(shù)據(jù)庫(kù)上構(gòu)建表;或者通過(guò)業(yè)務(wù)部署單元執(zhí)行DLL 類型的數(shù)據(jù)定義配置文件在數(shù)據(jù)庫(kù)上構(gòu)建表。執(zhí)行所述數(shù)據(jù)訪問(wèn)代碼,由所述數(shù)據(jù)訪問(wèn)代碼通過(guò)調(diào)用當(dāng)前使用的中間件提供的接口在數(shù)據(jù)庫(kù)上執(zhí)行數(shù)據(jù)操作語(yǔ)句。這樣采用本技術(shù)方案開(kāi)發(fā)得出的業(yè)務(wù)系統(tǒng)可以調(diào)用多個(gè)中間件中的任何一個(gè)中間件在數(shù)據(jù)庫(kù)中進(jìn)行表的構(gòu)建和訪問(wèn),在需要更換所調(diào)用的中間件時(shí),無(wú)須再重新基于更換的中間件進(jìn)行業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)。解決了現(xiàn)有技術(shù)中開(kāi)發(fā)出來(lái)的業(yè)務(wù)系統(tǒng)無(wú)法支持多種中間件的問(wèn)題。本發(fā)明實(shí)施例主要應(yīng)用于在數(shù)據(jù)庫(kù)進(jìn)行相關(guān)數(shù)據(jù)訪問(wèn)的過(guò)程中,采用本發(fā)明實(shí)施例中提供的數(shù)據(jù)訪問(wèn)處理方法所開(kāi)發(fā)出來(lái)的業(yè)務(wù)可以支持多種中間件。通過(guò)以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī), 服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種數(shù)據(jù)訪問(wèn)處理的方法,其特征在于,包括至少兩種中間件,該方法包括接收輸入的數(shù)據(jù)訪問(wèn)方式配置信息;根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句;生成調(diào)用所述數(shù)據(jù)操作語(yǔ)句的數(shù)據(jù)訪問(wèn)代碼。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)訪問(wèn)處理的方法,其特征在于,還包括接收輸入的數(shù)據(jù)模型定義信息;生成所述輸入的數(shù)據(jù)模型定義信息在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)定義配置文件;所述根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句為根據(jù)所述輸入的數(shù)據(jù)模型定義信息和所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句。
3.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)訪問(wèn)處理的方法,其特征在于,所述接收輸入的數(shù)據(jù)模型定義信息或輸入的數(shù)據(jù)訪問(wèn)方式配置信息為接收在可視化的界面中輸入的數(shù)據(jù)模型定義信息或輸入的數(shù)據(jù)訪問(wèn)方式配置信息。
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)訪問(wèn)處理的方法,其特征在于,所述數(shù)據(jù)模型定義信息包括所述數(shù)據(jù)模型的名稱及其相映射的預(yù)設(shè)表的名稱,所述數(shù)據(jù)模型的成員及其相映射的所述預(yù)設(shè)表中的字段,所述數(shù)據(jù)模型的成員的屬性與其相映射的所述預(yù)設(shè)表中的字段的屬性一一對(duì)應(yīng),所述數(shù)據(jù)模型的成員的屬性信息包括成員名稱、主鍵、外鍵、索引項(xiàng)和數(shù)據(jù)類型。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)訪問(wèn)處理的方法,其特征在于,所述數(shù)據(jù)訪問(wèn)方式配置信息包括以下信息中的一種或多種添加記錄配置信息、刪除記錄圖元配置信息、修改記錄配置信息或查詢記錄配置信息;所述每種數(shù)據(jù)訪問(wèn)方式配置信息的內(nèi)容包括輸入配置、輸出配置和訪問(wèn)結(jié)果配置。
6.根據(jù)權(quán)利要求2所述的數(shù)據(jù)訪問(wèn)處理的方法,其特征在于,所述數(shù)據(jù)定義配置文件為數(shù)據(jù)定義語(yǔ)句類型或者對(duì)象關(guān)系映射文件類型;所述數(shù)據(jù)定義語(yǔ)句類型的數(shù)據(jù)定義配置文件用于在業(yè)務(wù)運(yùn)行時(shí),由業(yè)務(wù)部署工具進(jìn)行調(diào)用并在數(shù)據(jù)庫(kù)上構(gòu)建表;所述對(duì)象關(guān)系映射文件類型的數(shù)據(jù)定義配置文件用于在業(yè)務(wù)運(yùn)行時(shí),通過(guò)其對(duì)應(yīng)的中間件提供的接口進(jìn)行調(diào)用并在數(shù)據(jù)庫(kù)上構(gòu)建表。
7.一種數(shù)據(jù)訪問(wèn)處理系統(tǒng),其特征在于,包括至少兩種中間件,該系統(tǒng)包括接收單元,用于接收輸入數(shù)據(jù)訪問(wèn)方式配置信息;第一生成單元,用于根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句;第二生成單元,用于生成調(diào)用所述數(shù)據(jù)操作語(yǔ)句的數(shù)據(jù)訪問(wèn)代碼。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)訪問(wèn)處理系統(tǒng),其特征在于,所述接收單元還用于接收輸入的數(shù)據(jù)模型定義信息;所述系統(tǒng)還包括第三生成單元,用于生成所述輸入的數(shù)據(jù)模型定義信息在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)定義配置文件;所述第一生成單元用于根據(jù)所述輸入的數(shù)據(jù)模型定義信息和所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句。
9.根據(jù)權(quán)利要求7或8所述的數(shù)據(jù)訪問(wèn)處理系統(tǒng),其特征在于,所述接收單元還用于接收在可視化的界面中輸入的數(shù)據(jù)模型定義信息或輸入的數(shù)據(jù)訪問(wèn)方式配置信息。
10.根據(jù)權(quán)利要求7或8所述的數(shù)據(jù)訪問(wèn)處理系統(tǒng),其特征在于,還包括業(yè)務(wù)部署單元,用于將數(shù)據(jù)定義配置文件、數(shù)據(jù)操作語(yǔ)句和數(shù)據(jù)訪問(wèn)代碼部署到業(yè)務(wù)的運(yùn)行環(huán)境中,并在業(yè)務(wù)運(yùn)行時(shí),執(zhí)行數(shù)據(jù)定義語(yǔ)句類型的數(shù)據(jù)定義配置文件在數(shù)據(jù)庫(kù)上構(gòu)建表。
全文摘要
本發(fā)明公開(kāi)一種數(shù)據(jù)訪問(wèn)處理方法及系統(tǒng),涉及數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,解決了現(xiàn)有技術(shù)中業(yè)務(wù)系統(tǒng)需要調(diào)用其他中間件實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)時(shí),就需要重新基于其他中間件進(jìn)行再次開(kāi)發(fā)的問(wèn)題。該方法中包括至少兩種中間件,該方法包括接收輸入的數(shù)據(jù)訪問(wèn)方式配置信息;根據(jù)所述輸入的數(shù)據(jù)訪問(wèn)方式配置信息生成在所述每個(gè)中間件下對(duì)應(yīng)的數(shù)據(jù)操作語(yǔ)句;生成調(diào)用所述數(shù)據(jù)操作語(yǔ)句的數(shù)據(jù)訪問(wèn)代碼。本發(fā)明實(shí)施例主要應(yīng)用于數(shù)據(jù)庫(kù)訪問(wèn)的處理過(guò)程中。
文檔編號(hào)G06F17/30GK102193947SQ20101012703
公開(kāi)日2011年9月21日 申請(qǐng)日期2010年3月18日 優(yōu)先權(quán)日2010年3月18日
發(fā)明者張曙光, 房洪安, 陳懷友 申請(qǐng)人:華為技術(shù)有限公司