通過中間件實現(xiàn)多種數(shù)據(jù)庫數(shù)據(jù)統(tǒng)一處理的方法和系統(tǒng)的制作方法【專利摘要】本發(fā)明涉及數(shù)據(jù)庫【
技術(shù)領(lǐng)域:
】,本發(fā)明公開了一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法,其包括以下步驟:步驟一、將數(shù)據(jù)庫中的每個數(shù)據(jù)表映射成一個XML文件;步驟二、應(yīng)用軟件將用戶的數(shù)據(jù)請求發(fā)送到中間件,中間件收到客戶端應(yīng)用軟件的數(shù)據(jù)請求后進(jìn)行分析,根據(jù)數(shù)據(jù)請求的內(nèi)容生成相應(yīng)的SQL語句;步驟三、將數(shù)據(jù)通過統(tǒng)一的客戶端訪問接口API進(jìn)行展示,表現(xiàn)層收到數(shù)據(jù)后,對前端頁面的HTML文件進(jìn)行數(shù)據(jù)綁定,將HTML文件中的節(jié)點與獲取的XML節(jié)點進(jìn)行數(shù)據(jù)綁定,從而進(jìn)行數(shù)據(jù)展示。本發(fā)明還公開了一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的系統(tǒng)。根據(jù)數(shù)據(jù)請求自動生成相應(yīng)的SQL語句,避免了應(yīng)用層與數(shù)據(jù)庫之間過于緊密的綁定和約束,從而實現(xiàn)多種數(shù)據(jù)庫的快速移植和管理。【專利說明】通過中間件實現(xiàn)多種數(shù)據(jù)庫數(shù)據(jù)統(tǒng)一處理的方法和系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明屬于信息系統(tǒng)開發(fā)和數(shù)據(jù)庫【
技術(shù)領(lǐng)域:
】,尤其涉及一種通過中間件實現(xiàn)多種數(shù)據(jù)庫數(shù)據(jù)統(tǒng)一處理的方法和系統(tǒng)。【
背景技術(shù):
】[0002]數(shù)據(jù)庫指的是以一定方式儲存在一起的數(shù)據(jù)集合,能為多個用戶共享并具有盡可能小的冗余度,其與應(yīng)用程序彼此獨立?,F(xiàn)有技術(shù)中數(shù)據(jù)庫包括ORACLE、DB2、SQLServer、Sybase、Informix、MySQL、VF、Access等等。[0003]現(xiàn)有技術(shù)中,應(yīng)用軟件都是使用特定的數(shù)據(jù)庫作為數(shù)據(jù)層處理的中心,數(shù)據(jù)庫訪問接口和語法都是在標(biāo)準(zhǔn)的SQL上進(jìn)行的,因此導(dǎo)致應(yīng)用層的訪問與特定的數(shù)據(jù)庫之間進(jìn)行了過于緊密的綁定和約束,沒有能夠進(jìn)行多種數(shù)據(jù)庫數(shù)據(jù)統(tǒng)一處理的方法,因此很難實現(xiàn)多種數(shù)據(jù)庫的移植和管理。[0004]比如,當(dāng)要查詢數(shù)據(jù)庫中某一類數(shù)據(jù)時,用戶需要在客戶端程序上書寫完整的SQL查詢語句,比如需要查詢的是:工資在999和1001之間的數(shù)據(jù),則需要書寫完整的SQL查詢語句:select*fromtablewheregongzibetween999and1001,并將這個SQL查詢語句發(fā)送給對應(yīng)的數(shù)據(jù)庫進(jìn)行處理。而如果換一個數(shù)據(jù)庫,如果保存工資的表變成table,則顯然上述的查詢語句也要相應(yīng)重新進(jìn)行書寫,這無疑增加了客戶端應(yīng)用程序的開發(fā)周期和人力成本。同時,對于客戶而言,也不能輕易更換數(shù)據(jù)庫,因為更換數(shù)據(jù)庫就必然導(dǎo)致其他應(yīng)用程序需要更新,導(dǎo)致用戶不能任意選擇數(shù)據(jù)庫?!?br/>發(fā)明內(nèi)容】[0005]本發(fā)明的目的是針對現(xiàn)有技術(shù)中客戶端程序與數(shù)據(jù)庫綁定過密導(dǎo)致客戶端程序開發(fā)困難以及用戶數(shù)據(jù)庫選擇受限的技術(shù)問題,本發(fā)明公開了一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法,通過本發(fā)明的方法,避免了客戶端程序與數(shù)據(jù)庫綁定過密的問題。本發(fā)明還公開了一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的系統(tǒng)。[0006]本發(fā)明的目的通過下述技術(shù)方案來實現(xiàn):一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法,其具體包括以下的步驟:步驟一、將數(shù)據(jù)庫中的每個數(shù)據(jù)表映射成一個XML文件,每一個XML文件的節(jié)點與數(shù)據(jù)表中的一個字段一一映射;步驟二、客戶端應(yīng)用軟件將用戶的數(shù)據(jù)請求發(fā)送到中間件,中間件收到客戶端應(yīng)用軟件的數(shù)據(jù)請求后進(jìn)行分析,根據(jù)數(shù)據(jù)請求的內(nèi)容生成相應(yīng)的SQL語句;步驟三、將數(shù)據(jù)通過統(tǒng)一的客戶端訪問接口API進(jìn)行展示,表現(xiàn)層收到數(shù)據(jù)后,對前端頁面的HTML文件進(jìn)行數(shù)據(jù)綁定,將HTML文件中的節(jié)點與獲取的XML節(jié)點進(jìn)行數(shù)據(jù)綁定,從而進(jìn)行數(shù)據(jù)展示。[0007]更進(jìn)一步地,上述用戶的請求數(shù)據(jù)通過標(biāo)準(zhǔn)的XMLHTTP方法類中的soap和send方法將數(shù)據(jù)請求發(fā)送到中間件。[0008]更進(jìn)一步地,上述中間件對數(shù)據(jù)請求進(jìn)行分析的具體過程為:首先分析M:F標(biāo)識,當(dāng)M:F=N表示新增記錄,后續(xù)生成數(shù)據(jù)庫插入insert語句;當(dāng)M:F=M表示修改記錄,后續(xù)生成數(shù)據(jù)庫插入update語句;當(dāng)M:F=D表示刪除記錄,后續(xù)生成數(shù)據(jù)庫插入delete語句。[0009]本發(fā)明還公開了一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的系統(tǒng),其具體包括文件映射模塊、數(shù)據(jù)庫語句生成模塊和數(shù)據(jù)顯示模塊;所述文件映射模塊用于將數(shù)據(jù)庫中的每個數(shù)據(jù)表映射成一個XML文件,每一個XML文件的節(jié)點與數(shù)據(jù)表中的一個字段的一一映射;所述數(shù)據(jù)庫語句生成模塊用于SQL語句的生成,對客戶端應(yīng)用軟件的數(shù)據(jù)請求進(jìn)行分析,生成相應(yīng)的SQL語句;所述數(shù)據(jù)顯示模塊用于將數(shù)據(jù)通過統(tǒng)一的客戶端訪問接口API進(jìn)行展示,表現(xiàn)層收到數(shù)據(jù)后,對前端頁面的HTML文件進(jìn)行數(shù)據(jù)綁定,將HTML文件中的節(jié)點與獲取的XML節(jié)點進(jìn)行數(shù)據(jù)綁定,從而進(jìn)行數(shù)據(jù)展示。[0010]更進(jìn)一步地,上述用戶的請求數(shù)據(jù)通過標(biāo)準(zhǔn)的XMLHTTP方法類中的soap和send方法將數(shù)據(jù)請求發(fā)送到中間件。[0011]更進(jìn)一步地,上述數(shù)據(jù)請求進(jìn)行分析的具體過程為:首先分析M:F標(biāo)識,當(dāng)M:F=N表示新增記錄,后續(xù)生成數(shù)據(jù)庫插入insert語句;當(dāng)M:F=M表示修改記錄,后續(xù)生成數(shù)據(jù)庫插入update語句;當(dāng)M:F=D表示刪除記錄,后續(xù)生成數(shù)據(jù)庫插入delete語句。[0012]通過采用以上技術(shù)方案,本發(fā)明具有以下有益效果:通過對數(shù)據(jù)庫中的元數(shù)據(jù)MD進(jìn)行封裝,采用標(biāo)準(zhǔn)的XML作為統(tǒng)一的數(shù)據(jù)載體,把XML樹作為一種抽象的數(shù)據(jù)結(jié)構(gòu),通過對XML樹進(jìn)行處理,實現(xiàn)應(yīng)用邏輯的處理。并把這種處理結(jié)果反饋到用戶層,從而實現(xiàn)完整的數(shù)據(jù)處理流程。本發(fā)明使得應(yīng)用軟件中在書寫代碼時不需要具體描述SQL語句,而是通過中間件根據(jù)客戶端應(yīng)用軟件的數(shù)據(jù)請求自動生成相應(yīng)的SQL語句,避免了應(yīng)用層的訪問與特定的數(shù)據(jù)庫之間進(jìn)行了過于緊密的綁定和約束,從而實現(xiàn)多種數(shù)據(jù)庫的快速移植和管理?!緦@綀D】【附圖說明】[0013]圖1為本發(fā)明的通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法的流程圖?!揪唧w實施方式】[0014]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合說明書附圖及具體實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0015]圖1為本發(fā)明的通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法的流程圖。第一步:元數(shù)據(jù)MD的XML封裝和映射。通過把一個數(shù)據(jù)表與一個標(biāo)準(zhǔn)的XML文件進(jìn)行綁定,表中每一個字段對應(yīng)一個XML文件節(jié)點。實現(xiàn)了異構(gòu)的數(shù)據(jù)庫表統(tǒng)一到標(biāo)準(zhǔn)的XML數(shù)據(jù)結(jié)構(gòu)的映射;第二步=XML數(shù)據(jù)邏輯處理過程和表現(xiàn)層數(shù)據(jù)生成。在數(shù)據(jù)處理層,通過中間件的邏輯處理模塊,劃分出數(shù)據(jù)查詢QE引擎、數(shù)據(jù)讀寫DE引擎。前者負(fù)責(zé)應(yīng)用層數(shù)據(jù)的查詢,后者負(fù)責(zé)應(yīng)用層數(shù)據(jù)的增加、刪除和修改。一方面,中間件對數(shù)據(jù)處理結(jié)果進(jìn)行表現(xiàn)層的訪問和數(shù)據(jù)生成,另一方面實現(xiàn)用戶層提交的邏輯處理需求進(jìn)行分析,自動生成相應(yīng)的標(biāo)準(zhǔn)SQL語句,進(jìn)行數(shù)據(jù)庫的操作。第三步:表現(xiàn)層數(shù)據(jù)訪問接口和展示。將數(shù)據(jù)通過一套統(tǒng)一的客戶端訪問接口API進(jìn)行展示??蛻舳送ㄟ^各種具體功能需求,發(fā)送不同的數(shù)據(jù)請求到中間件。從而實現(xiàn)數(shù)據(jù)的交互和訪問。[0016]本發(fā)明的具體實現(xiàn)過程如下本發(fā)明公開了一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法,其具體包括以下的步驟:步驟一、將數(shù)據(jù)庫中的每個數(shù)據(jù)表映射成一個XML文件,實現(xiàn)每一個XML節(jié)點與數(shù)據(jù)庫表中一個字段的一一映射關(guān)系。比如其中一個數(shù)據(jù)表為“數(shù)據(jù)庫人員信息表tabl”,這個表包括5個字段,分別為:字段1:姓名XM,字段2:性別XB,字段3:名族MZ,字段4:年齡NL,字段5:籍貫JG。將這個數(shù)據(jù)表的每個字段一一映射為XML文件中的一個節(jié)點,映射后XML文件中保存的是一條條具體的文本信息。[0017]步驟二、客戶端應(yīng)用軟件將用戶需求通過標(biāo)準(zhǔn)的XMLHTTP方法類中的soap和send方法將數(shù)據(jù)請求發(fā)送到中間件,中間件收到客戶端應(yīng)用軟件的數(shù)據(jù)請求后進(jìn)行分析,首先分析M:F標(biāo)識,當(dāng)M:F=N表示新增記錄,后續(xù)生成數(shù)據(jù)庫插入insert語句;當(dāng)M:F=M表示修改記錄,后續(xù)生成數(shù)據(jù)庫插入update語句;當(dāng)M:F=D表示刪除記錄,后續(xù)生成數(shù)據(jù)庫插入delete語句;例如:可以生成如下sql語句:insertintotablvalues(“張三”,null,null,null,null)和updatetablsetJG=“四川省成都市”。[0018]步驟三、將數(shù)據(jù)通過統(tǒng)一的客戶端訪問接口API進(jìn)行展示,表現(xiàn)層收到數(shù)據(jù)后,對前端頁面的HTML文件進(jìn)行數(shù)據(jù)綁定,將HTML文件中的節(jié)點與獲取的XML節(jié)點進(jìn)行數(shù)據(jù)綁定,從而進(jìn)行數(shù)據(jù)展示。例如一個HTML的TD節(jié)點與一個XML的姓名XM節(jié)點進(jìn)行綁定,就顯示出查詢的數(shù)據(jù):“張三”。[0019]通過對數(shù)據(jù)庫中的元數(shù)據(jù)MD進(jìn)行封裝,采用標(biāo)準(zhǔn)的XML作為統(tǒng)一的數(shù)據(jù)載體,把XML樹作為一種抽象的數(shù)據(jù)結(jié)構(gòu),通過對XML樹進(jìn)行處理,實現(xiàn)應(yīng)用邏輯的處理。并把這種處理結(jié)果反饋到用戶層,從而實現(xiàn)完整的數(shù)據(jù)處理流程。本發(fā)明使得應(yīng)用軟件中在書寫代碼時不需要具體描述SQL語句,而是通過中間件根據(jù)客戶端應(yīng)用軟件的數(shù)據(jù)請求自動生成相應(yīng)的SQL語句,避免了應(yīng)用層的訪問與特定的數(shù)據(jù)庫之間進(jìn)行了過于緊密的綁定和約束,從而實現(xiàn)多種數(shù)據(jù)庫的快速移植和管理。[0020]本發(fā)明還公開了通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的系統(tǒng),其具體包括文件映射模塊,數(shù)據(jù)庫語句生成模塊和數(shù)據(jù)顯示模塊,所述文件映射模塊用于將數(shù)據(jù)庫中的每個數(shù)據(jù)表映射成一個XML文件,實現(xiàn)每一個XML節(jié)點與數(shù)據(jù)庫表中一個字段的一一映射關(guān)系。比如其中一個數(shù)據(jù)表為“數(shù)據(jù)庫人員信息表tabl”,這個表包括5個字段,分別為:字段1:姓名XM,字段2:性別XB,字段3:名族MZ,字段4:年齡NL,字段5:籍貫JG。將這個數(shù)據(jù)表的每個字段一一映射為XML文件中的一個節(jié)點,映射后XML文件中保存的是一條條具體的文本信息。所述數(shù)據(jù)庫語句生成模塊用于面向數(shù)據(jù)庫的語句的生成,在客戶端應(yīng)用軟件將用戶需求通過標(biāo)準(zhǔn)的XMLHTTP方法類中的soap和send方法將數(shù)據(jù)請求發(fā)送到中間件,中間件收到客戶端應(yīng)用軟件的數(shù)據(jù)請求后進(jìn)行分析,首先分析M:F標(biāo)識,當(dāng)M:F=N表示新增記錄,后續(xù)生成數(shù)據(jù)庫插入insert語句;當(dāng)M:F=M表示修改記錄,后續(xù)生成數(shù)據(jù)庫插入update語句;當(dāng)M:F=D表示刪除記錄,后續(xù)生成數(shù)據(jù)庫插入delete語句。例如:可以生成如下sqli吾句:insertintotablvalues(“張三,,,null,null,null,null)和updatetablsetJG=“四川省成都市”。所述數(shù)據(jù)顯示模塊用于將數(shù)據(jù)通過統(tǒng)一的客戶端訪問接口API進(jìn)行展示,表現(xiàn)層收到數(shù)據(jù)后,對前端頁面的HTML文件進(jìn)行數(shù)據(jù)綁定,將HTML文件中的節(jié)點與獲取的XML節(jié)點進(jìn)行數(shù)據(jù)綁定,從而進(jìn)行數(shù)據(jù)展示。例如一個HTML的TD節(jié)點與一個XML的姓名XM節(jié)點進(jìn)行綁定,就顯示出查詢的數(shù)據(jù):“張三”。[0021]上述的實施例中所給出的系數(shù)和參數(shù),是提供給本領(lǐng)域的技術(shù)人員來實現(xiàn)或使用本發(fā)明的,本發(fā)明并不限定僅取前述公開的數(shù)值,在不脫離本發(fā)明的發(fā)明思想的情況下,本領(lǐng)域的技術(shù)人員可以對上述實施例做出種種修改或調(diào)整,因而本發(fā)明的保護(hù)范圍并不被上述實施例所限,而應(yīng)該是符合權(quán)利要求書提到的創(chuàng)新性特征的最大范圍。【權(quán)利要求】1.一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法,其具體包括以下的步驟:步驟一、將數(shù)據(jù)庫中的每個數(shù)據(jù)表映射成一個XML文件,每一個XML文件的節(jié)點與數(shù)據(jù)表中的一個字段一一映射;步驟二、客戶端應(yīng)用軟件將用戶的數(shù)據(jù)請求發(fā)送到中間件,中間件收到客戶端應(yīng)用軟件的數(shù)據(jù)請求后進(jìn)行分析,根據(jù)數(shù)據(jù)請求的內(nèi)容生成相應(yīng)的SQL語句;步驟三、將數(shù)據(jù)通過統(tǒng)一的客戶端訪問接口API進(jìn)行展示,表現(xiàn)層收到數(shù)據(jù)后,對前端頁面的HTML文件進(jìn)行數(shù)據(jù)綁定,將HTML文件中的節(jié)點與獲取的XML節(jié)點進(jìn)行數(shù)據(jù)綁定,從而進(jìn)行數(shù)據(jù)展示。2.如權(quán)利要求1所述的通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法,其特征在于所述用戶的請求數(shù)據(jù)通過標(biāo)準(zhǔn)的XMLHTTP方法類中的soap和send方法將數(shù)據(jù)請求發(fā)送到中間件。3.如權(quán)利要求2所述的通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的方法,其特征在于所述中間件對數(shù)據(jù)請求進(jìn)行分析的具體過程為:首先分析M:F標(biāo)識,當(dāng)M:F=N表示新增記錄,后續(xù)生成數(shù)據(jù)庫插入insert語句;當(dāng)M:F=M表示修改記錄,后續(xù)生成數(shù)據(jù)庫插入update語句;當(dāng)M:F=D表示刪除記錄,后續(xù)生成數(shù)據(jù)庫插入delete語句。4.一種通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的系統(tǒng),其特征在于具體包括文件映射模塊、數(shù)據(jù)庫語句生成模塊和數(shù)據(jù)顯示模塊;所述文件映射模塊用于將數(shù)據(jù)庫中的每個數(shù)據(jù)表映射成一個XML文件,每一個XML文件的節(jié)點與數(shù)據(jù)表中的一個字段的一一映射;所述數(shù)據(jù)庫語句生成模塊用于SQL語句的生成,對客戶端應(yīng)用軟件的數(shù)據(jù)請求進(jìn)行分析,生成相應(yīng)的SQL語句;所述數(shù)據(jù)顯示模塊用于將數(shù)據(jù)通過統(tǒng)一的客戶端訪問接口API進(jìn)行展示,表現(xiàn)層收到數(shù)據(jù)后,對前端頁面的HTML文件進(jìn)行數(shù)據(jù)綁定,將HTML文件中的節(jié)點與獲取的XML節(jié)點進(jìn)行數(shù)據(jù)綁定,從而進(jìn)行數(shù)據(jù)展示。5.如權(quán)利要求4所述的通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的系統(tǒng),其特征在于所述用戶的請求數(shù)據(jù)通過標(biāo)準(zhǔn)的XMLHTTP方法類中的soap和send方法將數(shù)據(jù)請求發(fā)送到中間件。6.如權(quán)利要求5所述的通過中間件實現(xiàn)多種數(shù)據(jù)庫統(tǒng)一處理的系統(tǒng),其特征在于所述數(shù)據(jù)請求進(jìn)行分析的具體過程為:首先分析M:F標(biāo)識,當(dāng)M:F=N表示新增記錄,后續(xù)生成數(shù)據(jù)庫插入insert語句;當(dāng)1F=M表示修改記錄,后續(xù)生成數(shù)據(jù)庫插入update語句;iM:F=D表示刪除記錄,后續(xù)生成數(shù)據(jù)庫插入delete語句?!疚臋n編號】G06F17/30GK103678575SQ201310665717【公開日】2014年3月26日申請日期:2013年12月11日優(yōu)先權(quán)日:2013年12月11日【發(fā)明者】蘭俊松,劉念林,王德鵬申請人:四川九洲電器集團(tuán)有限責(zé)任公司