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