oracle數(shù)據(jù)庫訪問方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,特別是涉及一種oracle數(shù)據(jù)庫訪問方法。
【背景技術(shù)】
[0002]在涉及大量數(shù)據(jù)管理時(shí)都要使用數(shù)據(jù)庫。數(shù)據(jù)庫的類型一般包括SQL Server,Oracle以及DB2等,其中Oracle用得較為廣泛。
[0003]傳統(tǒng)的數(shù)據(jù)庫訪問方式中,應(yīng)用程序訪問數(shù)據(jù)庫必須在每臺(tái)客戶端電腦上安裝Oracle客戶端軟件,參考圖1,應(yīng)用程序通過調(diào)用該Oracle客戶端軟件與服務(wù)器端的Oracle數(shù)據(jù)庫進(jìn)行交互。應(yīng)用程序的數(shù)據(jù)訪問依賴于該客戶端軟件,所以在使用應(yīng)用程序前必須啟動(dòng)并保證該客戶端軟件已經(jīng)正常運(yùn)行。
[0004]維護(hù)人員必須對(duì)所有客戶端電腦的Oracle軟件進(jìn)行安裝和維護(hù),才能保證應(yīng)用程序可以正常訪問Oracle數(shù)據(jù)庫,該軟件安裝大概需要占用600M存儲(chǔ)空間。因此傳統(tǒng)的依賴于安裝Oracle客戶端軟件訪問服務(wù)器端的Oracle數(shù)據(jù)庫的方式不僅存在占用客戶端電腦存儲(chǔ)空間的問題,也存在維護(hù)繁瑣的問題。
【發(fā)明內(nèi)容】
[0005]基于此,有必要提供一種使應(yīng)用程序不依賴于Oracle客戶端軟件而可以直接訪問oracle數(shù)據(jù)庫的方法。
[0006]—種oracle數(shù)據(jù)庫訪問方法,包括如下步驟:
[0007]提取oracle軟件中涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件;
[0008]在用于向oracle數(shù)據(jù)庫訪問的應(yīng)用程序中引入所述動(dòng)態(tài)鏈接庫文件;
[0009]應(yīng)用程序通過所述引入的動(dòng)態(tài)鏈接庫文件調(diào)用所述接口訪問oracle數(shù)據(jù)庫。
[0010]在其中一個(gè)實(shí)施例中,還包括步驟:
[0011]服務(wù)器將所述應(yīng)用程序和動(dòng)態(tài)鏈接庫文件一并編譯并發(fā)布;
[0012]當(dāng)客戶端向服務(wù)器發(fā)起數(shù)據(jù)訪問請(qǐng)求時(shí),所述服務(wù)器端向客戶端發(fā)送包含所述動(dòng)態(tài)鏈接庫文件的應(yīng)用程序;
[0013]所述客戶端接收并安裝所述應(yīng)用程序;
[0014]所述客戶端運(yùn)行所述應(yīng)用程序,通過所述應(yīng)用程序訪問數(shù)據(jù)庫。
[0015]在其中一個(gè)實(shí)施例中,所述提取oracle軟件中涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件的步驟包括:
[0016]利用oracle客戶端軟件在不同的數(shù)據(jù)訪問過程中反復(fù)連接和操作數(shù)據(jù)庫;
[0017]獲取并記錄oracle客戶端軟件在連接和操作數(shù)據(jù)庫時(shí)所用到的動(dòng)態(tài)鏈接庫文件;
[0018]對(duì)記錄的動(dòng)態(tài)鏈接庫文件進(jìn)行反編譯、分析和進(jìn)一步測試,最終確定涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件。
[0019]上述oracle數(shù)據(jù)庫的訪問方法,在應(yīng)用程序中直接引入訪問oracle數(shù)據(jù)庫接口所需要的動(dòng)態(tài)鏈接庫文件,可以不用安裝oracle客戶端程序,不僅節(jié)省了安裝oracle客戶端程序的空間,也解決了維護(hù)繁瑣的問題。
【附圖說明】
[0020]圖1為傳統(tǒng)的訪問oracle數(shù)據(jù)庫的方式的系統(tǒng)模塊圖;
[0021]圖2為一實(shí)施例的oracle數(shù)據(jù)庫訪問方法流程圖;
[0022]圖3為圖2所示實(shí)施例的oracle數(shù)據(jù)庫訪問方法的系統(tǒng)模塊圖。
【具體實(shí)施方式】
[0023]在不需要使用oracle客戶端軟件的全部功能時(shí),可將其中的涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件提取出來,專門用于運(yùn)行于客戶端的應(yīng)用程序連接和操作oracle數(shù)據(jù)庫。并且該動(dòng)態(tài)鏈接庫文件可以與應(yīng)用程序一同編譯,成為最終應(yīng)用程序的一部分。
[0024]如圖2所示,為一實(shí)施例的oracle數(shù)據(jù)庫訪問方法流程圖。該方法包括如下步驟。
[0025]步驟S101:提取oracle軟件中涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件。oracle軟件是oraCle(甲骨文)公司的一款數(shù)據(jù)庫管理軟件,包括部署在用戶側(cè)的客戶端軟件和部署在服務(wù)器側(cè)的服務(wù)器端軟件。用戶側(cè)的應(yīng)用程序通常通過客戶端軟件訪問服務(wù)器側(cè)的數(shù)據(jù)庫。服務(wù)器側(cè)提供訪問接口,用戶側(cè)的應(yīng)用程序調(diào)用該接口實(shí)現(xiàn)訪問。調(diào)用這些涉及訪問數(shù)據(jù)庫的接口的函數(shù)包含在相關(guān)的動(dòng)態(tài)鏈接庫文件中。
[0026]步驟S102:在用于向oracle數(shù)據(jù)庫訪問的應(yīng)用程序中引入所述動(dòng)態(tài)鏈接庫文件。應(yīng)用程序是指實(shí)現(xiàn)一定功能的程序,例如產(chǎn)生、分析報(bào)表的功能。產(chǎn)生報(bào)表需要基于數(shù)據(jù),而應(yīng)用程序本身只是處理數(shù)據(jù)的工具,并沒有數(shù)據(jù),因此其需要從外部讀入數(shù)據(jù),從而與數(shù)據(jù)庫產(chǎn)生聯(lián)系。
[0027]在應(yīng)用程序的實(shí)現(xiàn)方式中,可以進(jìn)行靜態(tài)編譯生成可執(zhí)行程序(exe),也可以引入動(dòng)態(tài)鏈接庫(dll)文件,在運(yùn)行時(shí)載入。本實(shí)施例中,將從oracle軟件中提取的動(dòng)態(tài)鏈接庫文件引入應(yīng)用程序即是后一種實(shí)現(xiàn)方式。
[0028]將動(dòng)態(tài)鏈接庫文件引入應(yīng)用程序就是建立起應(yīng)用程序運(yùn)行時(shí)與動(dòng)態(tài)鏈接庫文件的調(diào)用關(guān)系??梢圆捎脙煞N方式實(shí)現(xiàn)。
[0029](1)靜態(tài)調(diào)用,也稱為隱式調(diào)用,由編譯系統(tǒng)完成對(duì)動(dòng)態(tài)鏈接庫文件的加載和應(yīng)用程序結(jié)束時(shí)動(dòng)態(tài)鏈接庫文件卸載的編碼,調(diào)用方式簡單,能夠滿足通常的要求。通常采用的調(diào)用方式是把產(chǎn)生動(dòng)態(tài)鏈接庫時(shí)產(chǎn)生的庫(lib)文件加入到應(yīng)用程序的工程中,想使用dll文件中的函數(shù)時(shí),只須在源文件中聲明一下。lib文件包含了每一個(gè)dll文件導(dǎo)出函數(shù)的符號(hào)名和可選擇的標(biāo)識(shí)號(hào)以及dll文件名,不含有實(shí)際的代碼。lib文件包含的信息進(jìn)入到生成的應(yīng)用程序中,被調(diào)用的dll文件會(huì)在應(yīng)用程序加載時(shí)同時(shí)加載在到內(nèi)存中。
[0030](2)動(dòng)態(tài)調(diào)用,即顯式調(diào)用方式,是由編程者用API函數(shù)加載和卸載dll文件來達(dá)到調(diào)用dll文件的目的,比較復(fù)雜,但能更加有效地使用內(nèi)存,是編制大型應(yīng)用程序時(shí)的重要方式。
[0031]本實(shí)施例可以采用上述第(1)種方式。
[0032]步驟S103:應(yīng)用程序通過所述動(dòng)態(tài)鏈接庫文件調(diào)用所述接口訪問oracle數(shù)據(jù)庫。由于該動(dòng)態(tài)鏈接庫文件本身負(fù)責(zé)調(diào)用oracle數(shù)據(jù)庫的接口,因此當(dāng)應(yīng)用程序引用了該動(dòng)態(tài)鏈接庫文件后,即可以實(shí)現(xiàn)訪問oracle數(shù)據(jù)庫的目的。
[0033]進(jìn)一步地,可以將上述實(shí)施例的應(yīng)用程序發(fā)布在服務(wù)器端,用戶側(cè)在請(qǐng)求數(shù)據(jù)時(shí)即可同時(shí)獲得訪問數(shù)據(jù)庫的能力。具體包括如下步驟。
[0034]步驟S201:服務(wù)器將所述應(yīng)用程序和動(dòng)態(tài)鏈接庫文件一并編譯并發(fā)布。將應(yīng)用程序與動(dòng)態(tài)鏈接庫文件發(fā)布為安裝包。
[0035]步驟S202:當(dāng)客戶端向服務(wù)器發(fā)起數(shù)據(jù)訪問請(qǐng)求時(shí),所述服務(wù)器端向客戶端發(fā)送包含所述動(dòng)態(tài)鏈接庫文件的應(yīng)用程序。服務(wù)器向客戶端發(fā)送該安裝包。
[0036]步驟S203:所述客戶端接收并安裝所述應(yīng)用程序??蛻舳藞?zhí)行安裝包獲得應(yīng)用程序和動(dòng)態(tài)鏈接庫文件。這樣客戶端的應(yīng)用程序總是伴隨引入了該動(dòng)態(tài)鏈接庫文件,可以訪問oracle數(shù)據(jù)庫。
[0037]步驟S204:所述客戶端運(yùn)行所述應(yīng)用程序,通過所述應(yīng)用程序訪問數(shù)據(jù)庫。
[0038]上述步驟S101中,提取oracle軟件中涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件的步驟包括:
[0039]步驟S110:利用oracle客戶端軟件在不同的數(shù)據(jù)訪問過程中反復(fù)連接和操作數(shù)據(jù)庫。
[0040]步驟S112:獲取并記錄oracle客戶端軟件在連接和操作數(shù)據(jù)庫時(shí)所用到的動(dòng)態(tài)鏈接庫文件。
[0041]步驟S114:對(duì)記錄的動(dòng)態(tài)鏈接庫文件進(jìn)行反編譯、分析和進(jìn)一步測試,最終確定涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件。
[0042]上述oracle數(shù)據(jù)庫的訪問方法,參考圖3,在應(yīng)用程序中直接引入訪問oracle數(shù)據(jù)庫接口所需要的動(dòng)態(tài)鏈接庫文件,可以不用安裝oracle客戶端程序,不僅節(jié)省了安裝oracle客戶端程序的空間,也解決了維護(hù)繁瑣的問題。
[0043]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種oracle數(shù)據(jù)庫訪問方法,包括如下步驟: 提取oracle軟件中涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件; 在用于向oracle數(shù)據(jù)庫訪問的應(yīng)用程序中引入所述動(dòng)態(tài)鏈接庫文件; 應(yīng)用程序通過所述引入的動(dòng)態(tài)鏈接庫文件調(diào)用所述接口訪問oracle數(shù)據(jù)庫。2.根據(jù)權(quán)利要求1所述的oracle數(shù)據(jù)庫訪問方法,其特征在于,還包括步驟: 服務(wù)器將所述應(yīng)用程序和動(dòng)態(tài)鏈接庫文件一并編譯并發(fā)布; 當(dāng)客戶端向服務(wù)器發(fā)起數(shù)據(jù)訪問請(qǐng)求時(shí),所述服務(wù)器端向客戶端發(fā)送包含所述動(dòng)態(tài)鏈接庫文件的應(yīng)用程序; 所述客戶端接收并安裝所述應(yīng)用程序; 所述客戶端運(yùn)行所述應(yīng)用程序,通過所述應(yīng)用程序訪問數(shù)據(jù)庫。3.根據(jù)權(quán)利要求1所述的oracle數(shù)據(jù)庫訪問方法,其特征在于,所述提取oracle軟件中涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件的步驟包括: 利用oracle客戶端軟件在不同的數(shù)據(jù)訪問過程中反復(fù)連接和操作數(shù)據(jù)庫; 獲取并記錄oracle客戶端軟件在連接和操作數(shù)據(jù)庫時(shí)所用到的動(dòng)態(tài)鏈接庫文件; 對(duì)記錄的動(dòng)態(tài)鏈接庫文件進(jìn)行反編譯、分析和進(jìn)一步測試,最終確定涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件。
【專利摘要】本發(fā)明公開一種oracle數(shù)據(jù)庫訪問方法,包括如下步驟:提取oracle軟件中涉及訪問數(shù)據(jù)庫的接口的動(dòng)態(tài)鏈接庫文件;在用于向oracle數(shù)據(jù)庫訪問的應(yīng)用程序中引入所述動(dòng)態(tài)鏈接庫文件;應(yīng)用程序通過所述引入的動(dòng)態(tài)鏈接庫文件調(diào)用所述接口訪問oracle數(shù)據(jù)庫。上述oracle數(shù)據(jù)庫的訪問方法,在應(yīng)用程序中直接引入訪問oracle數(shù)據(jù)庫接口所需要的動(dòng)態(tài)鏈接庫文件,可以不用安裝oracle客戶端程序,不僅節(jié)省了安裝oracle客戶端程序的空間,也解決了維護(hù)繁瑣的問題。
【IPC分類】G06F17/30
【公開號(hào)】CN105335432
【申請(qǐng)?zhí)枴緾N201410391885
【發(fā)明人】金敘
【申請(qǐng)人】無錫華潤微電子有限公司
【公開日】2016年2月17日
【申請(qǐng)日】2014年8月11日