一種數(shù)據(jù)庫訪問工具、系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及數(shù)據(jù)訪問技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)庫訪問工具、系統(tǒng)和方法。
【背景技術(shù)】
[0002]客戶端通常通過與數(shù)據(jù)庫的連接接口來實現(xiàn)對數(shù)據(jù)庫的訪問。由于數(shù)據(jù)庫類型、客戶端操作系統(tǒng)環(huán)境、開發(fā)語言等的不同,對于不同類型的數(shù)據(jù)庫和操作系統(tǒng),訪問接口往往不同。那么,當客戶端需要訪問多種類型的數(shù)據(jù)庫時,客戶端需要調(diào)用多個接口來實現(xiàn),而當某一類型數(shù)據(jù)庫為多個客戶端提供數(shù)據(jù)時,也需要根據(jù)客戶端系統(tǒng)的環(huán)境設(shè)置不同的接口,客戶端往往需要通過調(diào)用不同的訪問接口來實現(xiàn)對不同類型的數(shù)據(jù)庫的訪問,在現(xiàn)有技術(shù)中,無法實現(xiàn)統(tǒng)一的數(shù)據(jù)庫訪問。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種數(shù)據(jù)庫訪問工具、系統(tǒng)和方法,從而實現(xiàn)統(tǒng)一的數(shù)據(jù)庫訪問。
[0004]一種數(shù)據(jù)庫訪問工具,包括:
[0005]封裝單元,用于將外設(shè)的各類數(shù)據(jù)庫進行統(tǒng)一封裝,形成統(tǒng)一接口 ;
[0006]交互單元,用于通過所述封裝單元封裝的統(tǒng)一接口接收至少一個外設(shè)的應(yīng)用發(fā)送的訪問請求,根據(jù)所述至少一個外設(shè)的應(yīng)用發(fā)送的訪問請求,確定出對應(yīng)的外設(shè)的數(shù)據(jù)庫,將該訪問請求發(fā)送給所述對應(yīng)的外設(shè)的數(shù)據(jù)庫,接收所述對應(yīng)的外設(shè)的數(shù)據(jù)庫返回的結(jié)果,并將該結(jié)果轉(zhuǎn)發(fā)給所述至少一個外設(shè)的應(yīng)用。
[0007]優(yōu)選地,所述封裝單元,用于將外設(shè)的各類數(shù)據(jù)庫的SQL語句進行統(tǒng)一封裝,并建立所述SQL語句與所述外設(shè)的各類數(shù)據(jù)庫的對應(yīng)關(guān)系,并將該對應(yīng)關(guān)系提供給所述交互單
J L.ο
[0008]優(yōu)選地,所述交互單元,用于在接收外設(shè)的至少一個應(yīng)用發(fā)送的訪問請求時,解析出所述至少一個外設(shè)的應(yīng)用中每一應(yīng)用發(fā)送的訪問請求中的目標SQL語句,根據(jù)所述目標SQL語句與所述外設(shè)的各類數(shù)據(jù)庫的對應(yīng)關(guān)系,確定所述目標SQL語句對應(yīng)的外設(shè)的目標數(shù)據(jù)庫,并將該目標SQL語句發(fā)送給所述對應(yīng)的外設(shè)的目標數(shù)據(jù)庫。
[0009]優(yōu)選地,所述封裝單元,進一步用于封裝各類外設(shè)的應(yīng)用對應(yīng)的特征以及每一類外設(shè)的應(yīng)用對應(yīng)的數(shù)據(jù)格式;
[0010]所述交互單元,進一步用于根據(jù)所述封裝單元封裝的各類外設(shè)的應(yīng)用對應(yīng)的特征,解析出所述至少一個應(yīng)用發(fā)送的訪問請求中每一應(yīng)用對應(yīng)的特征,將所述接收到的所述對應(yīng)的外設(shè)的數(shù)據(jù)庫返回的結(jié)果轉(zhuǎn)換為對應(yīng)的數(shù)據(jù)格式,并將數(shù)據(jù)格式轉(zhuǎn)換后的結(jié)果發(fā)送給對應(yīng)的應(yīng)用。
[0011]—種數(shù)據(jù)訪問系統(tǒng),包括:上述任意一種所述的數(shù)據(jù)庫訪問工具、至少一類數(shù)據(jù)庫和至少一個應(yīng)用;其中,
[0012]所述至少一類數(shù)據(jù)庫,用于與所述數(shù)據(jù)庫訪問工具相連,發(fā)送訪問請求對應(yīng)的結(jié)果給所述數(shù)據(jù)庫訪問工具;
[0013]所述至少一個應(yīng)用,用于與所述數(shù)據(jù)庫訪問工具相連,發(fā)送訪問請求給所述數(shù)據(jù)庫訪問工具,并接收所述數(shù)據(jù)庫訪問工具發(fā)送的與所述訪問請求對應(yīng)的結(jié)果。
[0014]優(yōu)選地,所述數(shù)據(jù)庫訪問工具,用于確定各類數(shù)據(jù)庫的SQL語句,并對所述確定的SQL語句進行封裝,建立所述SQL語句與所述各類數(shù)據(jù)庫的對應(yīng)關(guān)系;在接收至少一個應(yīng)用發(fā)送的訪問請求時,解析出所述至少一個應(yīng)用中每一應(yīng)用發(fā)送的訪問請求中的目標SQL語句,根據(jù)所述目標SQL語句與所述各類數(shù)據(jù)庫的對應(yīng)關(guān)系,確定所述目標SQL語句對應(yīng)的目標數(shù)據(jù)庫,并將該目標SQL語句發(fā)送給所述對應(yīng)的目標數(shù)據(jù)庫。
[0015]優(yōu)選地,所述數(shù)據(jù)庫訪問工具,用于封裝各類應(yīng)用對應(yīng)的特征以及每一類應(yīng)用對應(yīng)的數(shù)據(jù)格式;根據(jù)所述封裝的各類外設(shè)的應(yīng)用對應(yīng)的特征,解析出所述至少一個應(yīng)用發(fā)送的訪問請求中每一應(yīng)用對應(yīng)的特征,將所述接收到的所述對應(yīng)的數(shù)據(jù)庫返回的結(jié)果轉(zhuǎn)換為對應(yīng)的數(shù)據(jù)格式,并將數(shù)據(jù)格式轉(zhuǎn)換后的結(jié)果發(fā)送給對應(yīng)的應(yīng)用。
[0016]—種數(shù)據(jù)庫訪問方法,應(yīng)用于數(shù)據(jù)庫訪問工具,將外設(shè)的各類數(shù)據(jù)庫進行統(tǒng)一封裝,形成統(tǒng)一接口,還包括:
[0017]通過所述統(tǒng)一接口接收至少一個應(yīng)用發(fā)送的訪問請求;
[0018]根據(jù)所述至少一個應(yīng)用發(fā)送的訪問請求,確定出對應(yīng)的數(shù)據(jù)庫;
[0019]將該訪問請求發(fā)送給所述對應(yīng)的數(shù)據(jù)庫;
[0020]接收所述對應(yīng)的數(shù)據(jù)庫返回的結(jié)果,并將該結(jié)果轉(zhuǎn)發(fā)給所述至少一個應(yīng)用。
[0021]優(yōu)選地,所述將各類數(shù)據(jù)庫進行統(tǒng)一封裝,形成統(tǒng)一接口,包括:
[0022]將各類數(shù)據(jù)庫的SQL語句進行統(tǒng)一封裝,并建立所述SQL語句與所述各類數(shù)據(jù)庫的對應(yīng)關(guān)系。
[0023]優(yōu)選地,在所述通過所述統(tǒng)一接口接收至少一個應(yīng)用發(fā)送的訪問請求之后,在所述確定出對應(yīng)的數(shù)據(jù)庫之前,進一步包括:
[0024]解析出所述至少一個應(yīng)用中每一應(yīng)用發(fā)送的訪問請求中的目標SQL語句;
[0025]所述確定出對應(yīng)的數(shù)據(jù)庫,將該訪問請求發(fā)送給所述對應(yīng)的數(shù)據(jù)庫,包括:根據(jù)所述目標SQL語句與所述各類數(shù)據(jù)庫的對應(yīng)關(guān)系確定所述目標SQL語句對應(yīng)的目標數(shù)據(jù)庫,并將該目標SQL語句發(fā)送給所述對應(yīng)的目標數(shù)據(jù)庫。
[0026]優(yōu)選地,該方法進一步包括:封裝各類應(yīng)用對應(yīng)的特征以及每一類應(yīng)用對應(yīng)的數(shù)據(jù)格式;
[0027]在所述通過所述統(tǒng)一接口接收至少一個應(yīng)用發(fā)送的訪問請求之后,在所述確定出對應(yīng)的數(shù)據(jù)庫之前,進一步包括:根據(jù)所述各類應(yīng)用對應(yīng)的特征,解析出所述至少一個應(yīng)用發(fā)送的訪問請求中每一應(yīng)用的類型;
[0028]所述將該結(jié)果轉(zhuǎn)發(fā)給所述至少一個應(yīng)用,包括:將所述接收到的所述對應(yīng)的數(shù)據(jù)庫返回的結(jié)果轉(zhuǎn)換為對應(yīng)的數(shù)據(jù)格式,并將數(shù)據(jù)格式轉(zhuǎn)換后的結(jié)果發(fā)送給對應(yīng)的應(yīng)用。
[0029]本發(fā)明實施例提供了一種數(shù)據(jù)庫訪問工具、系統(tǒng)和方法,該數(shù)據(jù)庫訪問工具,包括:封裝單元,用于將外設(shè)的各類數(shù)據(jù)庫進行統(tǒng)一封裝,形成統(tǒng)一接口 ;交互單元,用于通過所述封裝單元封裝的統(tǒng)一接口接收至少一個外設(shè)的應(yīng)用發(fā)送的訪問請求,根據(jù)所述至少一個外設(shè)的應(yīng)用發(fā)送的訪問請求,確定出對應(yīng)的外設(shè)的數(shù)據(jù)庫,將該訪問請求發(fā)送給所述對應(yīng)的外設(shè)的數(shù)據(jù)庫,接收所述對應(yīng)的外設(shè)的數(shù)據(jù)庫返回的結(jié)果,并將該結(jié)果轉(zhuǎn)發(fā)給所述至少一個外設(shè)的應(yīng)用,通過該封裝單元的統(tǒng)一封裝,使得可以通過同一個接口訪問各類數(shù)據(jù)庫,而交互單元可以接收到各類應(yīng)用發(fā)送的訪問請求,避免了為每一類應(yīng)用開發(fā)對應(yīng)的訪問接口,從而實現(xiàn)統(tǒng)一的數(shù)據(jù)庫訪問。
【附圖說明】
[0030]圖1為本發(fā)明實施例提供的一種數(shù)據(jù)庫訪問工具的結(jié)構(gòu)示意圖;
[0031]圖2為本發(fā)明實施例提供的一種數(shù)據(jù)庫訪問工具包裝為DBTrans類的結(jié)構(gòu)示意圖;
[0032]圖3為本發(fā)明實施例提供的一種數(shù)據(jù)訪問系統(tǒng)的結(jié)構(gòu)示意圖;
[0033]圖4為本發(fā)明實施例提供的一種數(shù)據(jù)訪問方法的流程圖;
[0034]圖5為本發(fā)明另一實施例提供的一種數(shù)據(jù)訪問方法的流程圖。
【具體實施方式】
[0035]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0036]如圖1所示,本發(fā)明實施例提供一種數(shù)據(jù)庫訪問工具,包括:
[0037]封裝單元101,用于將外設(shè)的各類數(shù)據(jù)庫進行統(tǒng)一封裝,形成統(tǒng)一接口 ;
[0038]交互單元102,用于通過封裝單元101封裝的統(tǒng)一接口接收至少一個外設(shè)的應(yīng)用發(fā)送的訪問請求,根據(jù)至少一個外設(shè)的應(yīng)用發(fā)送的訪問請求,確定出對應(yīng)的外設(shè)的數(shù)據(jù)庫,將該訪問請求發(fā)送給對應(yīng)的外設(shè)的數(shù)據(jù)庫,接收對應(yīng)的外設(shè)的數(shù)據(jù)庫返回的結(jié)果,并將該結(jié)果轉(zhuǎn)發(fā)給至少一個外設(shè)的應(yīng)用。
[0039]在本發(fā)明另一實施例中,封裝單元101,用于將外設(shè)的各類數(shù)據(jù)庫的SQL語句進行統(tǒng)一封裝,并建立SQL語句與外設(shè)的各類數(shù)據(jù)庫的對應(yīng)關(guān)系,并將該對應(yīng)關(guān)系提供給交互單元102。由于每一類數(shù)據(jù)庫有其特有的SQL語句,可以通過這特有的SQL語句可以實現(xiàn)對數(shù)據(jù)庫執(zhí)行查詢、修改、刪除和增加等操作,那么,在本發(fā)明實施例中,通過將各類數(shù)據(jù)庫對應(yīng)的SQ