基於ODBC-JDBC的資料庫連線策略的實現與優化論文

才智咖 人氣:2.56W

【摘 要】使用JSP技術開發動態互動式Web資訊系統是當今Internet主流技術之一,隨著網路應用和電子商務的迅速發展,站點與資料庫連線的操作越來越頻繁,也越來越複雜。通過分析現有的資料庫連線技術,選擇使用ODBC-JDBC橋驅動程式作為JDBC的驅動程式,介紹其連線策略、實現方法,並對其從驅動程式、連線物件、執行物件等方面進行優化策略分析。

基於ODBC-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的一箇中間層。允許開發人員編寫訪問資料的程式碼而不用關心資料庫如何實現,而只關心到資料庫的連線。

是在程式設計環境中優先使用的資料訪問介面。他提供了資料訪問的互用性和可伸縮性。

是一組用於和資料來源進行互動的物件導向的類庫。通常情況下,資料來源是資料庫,但同樣也能夠是文字檔案、Excel表格或者是XML檔案。

2 Java中連線技術選擇

ODBC使用的是C語言介面,對於Java而言,對本地C語言程式碼的呼叫在應用程式的安全性、實現性、健壯性以及可移植性等方面存在缺陷,束縛了ODBC驅動程式在Java應用程式中的應用。

儘管Java中存在的包提供了豐富的類和介面,但是通過這些類和介面訪問的資料是以流的形式表示的,因此對於訪問儲存在外部資料提供的程式,比如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的資料庫連線應用程式步驟如下:①為資料庫建立資料來源②匯入包③載入驅動程式④載入將連線該資料來源的驅動程式,使用ame()方法,將給定的類載入到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.