基于ODBC-JDBC的數據庫連接策略的實現與優化論文
【摘 要】使用JSP技術開發動態交互式Web信息系統是當今Internet主流技術之一,隨著網絡應用和電子商務的迅速發展,站點與數據庫連接的操作越來越頻繁,也越來越復雜。通過分析現有的數據庫連接技術,選擇使用ODBC-JDBC橋驅動程序作為JDBC的驅動程序,介紹其連接策略、實現方法,并對其從驅動程序、連接對象、執行對象等方面進行優化策略分析。
【關鍵詞】ODBC-JDBC,實現方法,優化策略
1 數據庫連接技術介紹
數據庫軟件設計開發不可避免地應用數據庫連接,建立數據庫連接,與數據庫進行通信,執行SQl語句并檢索查詢結果。目前實現上述活動的常用技術是ODBC和JDBC。
ODBC是Open DataBase Connectivity的縮寫,是微軟公司提供的應用程序接口,用于訪問數據庫。使用結構化查詢語言作為其數據庫語言,并提供插入、修改和刪除數據庫以及從數據庫中提取信息的功能。
JDBC是Java DataBase Connectivity的縮寫,是Sun Microsystems提供的Java API一部分,它定義了一組API對象以及與數據庫進行交互的方法。
ADO是Activex Data Objects的縮寫,是一個用于存取數據源的COM組建。提供了編程語言和統一數據訪問方式OLE DB的一個中間層。允許開發人員編寫訪問數據的代碼而不用關心數據庫如何實現,而只關心到數據庫的連接。
ADO.net是在.net編程環境中優先使用的數據訪問接口。他提供了數據訪問的互用性和可伸縮性。
ADO.net是一組用于和數據源進行交互的面向對象的類庫。通常情況下,數據源是數據庫,但同樣也能夠是文本文件、Excel表格或者是XML文件。
2 Java中連接技術選擇
ODBC使用的是C語言接口,對于Java而言,對本地C語言代碼的調用在應用程序的安全性、實現性、健壯性以及可移植性等方面存在缺陷,束縛了ODBC驅動程序在Java應用程序中的應用。
盡管Java中存在的Java.io包提供了豐富的類和接口,但是通過這些類和接口訪問的數據是以流的形式表示的,因此對于訪問存儲在外部數據提供的程序,比如SQLServer、Oracle和Access中的數據的所有Java應用程序而言,JDBC是彌補缺陷的良藥,是必須的。
在Java語言中, JDBC ( Java DataBaseConnection)是應用程序與數據庫溝通的橋梁,即Java語言通過JDBC技術訪問數據庫。JDBC是一種“開放”的方案,它為數據庫應用開發人員、數據庫前臺工具開發人員提供了一種標準的應用程序設計接口,使開發人員可以用純Java語言編寫完整的數據庫應用程序。
JDBC提供兩種API,分別是面向開發人員的API和面向底層的JDBC驅動程序API,底層主要通過直接的JDBC驅動和JDBC-ODBC橋驅動實現與數據庫的連接。
一般來說,Java應用程序訪問數據庫的過程是:①裝載數據庫驅動程序;
②通過JDBC建立數據庫連接;
③訪問數據庫,執行SQL語句;
④斷開數據庫連接。
對于共享資源,有一個很著名的設計模式:資源池(Resource Pool)。該模式正是為了解決資源的頻繁分配 釋放所造成的問題。為解決上述問題,可以采用數據庫連接池技術。數據庫連接池的基本思想就是為數據庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數量的連接,當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。我們可以通過設定連接池最大連接數來防止系統無盡的與數據庫連接。更為重要的是我們可以通過連接池的管理機制監視數據庫的連接的數量、使用情況,為系統開發、測試及性能調整提供依據。
因此,為了提高訪問數據庫數據的效率,Java應用程序選擇了JDBC,使用ODBC-JDBC橋驅動程序連接數據庫,從JDBC訪問ODBC數據源。
3 連接策略的實現
開發基于ODBC-JDBC的數據庫連接應用程序步驟如下:①為數據庫創建數據源②導入Java.sql包③加載驅動程序④加載將連接該數據源的驅動程序,使用Class.forName()方法,將給定的類加載到Java虛擬機中⑤創建連接對象DriverManager類試圖找到一個能夠連接至URL中指定的數據庫的驅動程序。這個類跟蹤已注冊的驅動程序,當調用getConnection()方法時,它會搜索整個該驅動程序列表,直到找到一個能夠連接至URL中指定的數據庫的驅動程序。加載此驅動程序后,使用getConnection()方法建立與數據源的連接。此方法中有3個接收參數,分別表示數據源的名稱、數據源連接所使用的類型以及用戶名、密碼。
⑥創建執行對象并執行
一旦建立連接,就使用該連接將SQL語句傳遞給它所連接的數據庫。然后使用Connection類的createStatement()方法創建Statement接口實例。執行查詢最有效的方法是使用Statement接口中的executeQuery()方法,接收SQL查詢字段作為參數,并返回包括查詢結果的ResultSet。
執行更新數據庫,包括插入數據,修改數據或者刪除數據,一方面需要編寫數據更新的SQL語句,它不會將結果作為ResultSet返回,而是返回一個整數,表示受該語句影響的行數。另一方面使用executeUpdate()方法。
⑦接收、存放執行結果
使用Statement對象構建并執行SQL語句以執行對數據庫的操作,操作結果返回給ResultSet對象。
⑧關閉對象和連接
關閉ResultSet對象、Statement對象、關閉連接。
4 連接策略的優化
4.1 連接中驅動程序的優化使用本地API部分Java驅動程序的速度要比基于ODBC-JDBC橋的數據庫連接速度快,它將JDBC調用轉換成對DBMS客戶端API的調用,它使用本地數據庫API的Java本地接口訪問數據庫。
與ODBC驅動程序一樣,它也需要在客戶機上使用本地二進制代碼,并要求安裝和配置數據庫。隨著網絡技術、中間件技術的縱深發展和不斷完善,使用網絡協議和中間件與服務器進行通信,然后服務器將該協議和中間件轉換成特定于DBMS的方法調用,這是JDBC網絡純Java驅動程序下的數據庫連接,此驅動程序開始獨立于數據庫,將JDBC轉換成本地專有數據庫調用,還支持對多個后端數據庫進行訪問。
4.2 執行對象選擇的優化
在數據庫連接過程中存在多次執行同一操作的情況,為了提高SQL語句的接收、編譯效率,可用PreparedStatement()方法創建PreparedStatement對象,因為PreparedStatement對象用于預編譯的SQL語句,可以接收一個或者多個參數作為輸入參數,提高了效率。另外它還增添了設置值所需要的一整套方法,可以將這些方法發送到數據庫以代替參數的占位符。
4.3 連接對象的優化
使用連接池是實現數據訪問優化的重要途徑之一。如果每次Web應用接受到請求,就向數據庫要求一個連接,當執行完就通知數據庫中斷連接,這樣的方式將會耗費大量的時間與資源。而連接池的運作方式是一開始向數據庫要求很多Connection連接存儲在一個Pool池內,讓需要的人從連接池中取Connection,等到用完之后再放回連接池,從而讓Web應用與數據庫之間能夠獲得最大的執行效率。
5 結束語
數據庫連接的實現是數據庫軟件開發過程中必不可少的組成部分,數據庫連接的優化關系到數據查詢、更新的執行效率,成為衡量系統開發性能的重要指標,因此數據庫連接策略的實現和優化是一項系統工程,值得我們在開發實踐中不斷的探索和挖掘。
參考文獻
[1]王 強.高校綜合人力資源管理系統的數據庫優化策略研究[J].電腦知識與技術,2010,17(10):50-51.
[2]孫鑫鴿,陳 剛,孫小玲.基于JDBC的數據庫連接池技術的研究與設計[J].計算機與信息技術,2007,15(5):61-62.
[3]王秀義.基于JDBC的數據庫連接池及實現[J].計算機系統應用,2005,22(4):43-45.
【基于ODBC-JDBC的數據庫連接策略的實現與優化論文】相關文章:
優化農機裝備結構的策略分析論文05-05
企業稅務管理的問題優化策略論文02-22
公共體育教學現狀與優化策略論文02-18
淺析基于情感培養的教學策略論文12-09
企業數據庫安全防護及維護策略論文11-11
淺談基于Openstack 的網絡攻防實驗平臺設計與實現論文02-20
醫療空間環境與優化設計策略論文提綱11-17
- 相關推薦