JDBC
(
Java DataBase Connectivity
)是使用
Java
存取資
料庫系統的解決方案,它將不同資料庫間各自差異
API
與標
準
SQL
(
Structured Query Language
)陳述分開看待,實現
資料庫無關的
Java
操作介面。開發人員使用
JDBC
統一的
API
介面,並專注於標準
SQL
陳述,就可以避免直接處理底層資
料庫驅動程式與相關操作介面的差異性。
實際的資料庫存取是個非常複雜的主題,可以使用專書
加以說明,不過在這個章節中,會告訴您一些
JDBC
基本
API
的使用與觀念,讓您對
Java
如何存取資料庫有所認識。
JDBC 入門
20-2
20.1 使用JDBC 連接資料庫
在正式使用
JDBC
進行資料庫操作之前,先來認識
JDBC
的基本架
構,了解資料庫驅動程式與資料庫之間的關係。在這個小節也將看到,
如何設計一個簡單的工具類別,讓您在進行資料庫連接(
Connection
)
時更為方便。
20.1.1 簡介JDBC
如果要連接資料庫並進行操作,基本上必須了解資料庫所提供的
API
操作介面,然而各個廠商所提供的
API
操作介面並不一致,如果
今天要使用
A
廠商的資料庫,就必須設計一個專用的程式,來操作
A
廠商資料庫所提供的
API
,將來如果要使用
B
廠商的資料庫,即使上
層應用程式本身的目的相同,也是要撰寫專用於
B
廠商資料庫之存取
程式,十分的不方便。
使用
JDBC
,可由廠商實作操作資料庫介面的驅動程式,而
Java
程式設計人員呼叫
JDBC
的
API
並操作
SQL
,實際對資料庫的操作由
JDBC
驅動程式負責。如果要更換資料庫,基本上只要更換驅動程式,
Java
程式中只要載入新的驅動程式來源,即可完成資料庫系統的變
更,
Java
程式的部份則無需改變。
圖
20.1
是
JDBC API
、資料庫驅動程式與資料庫之間的關係:
20-3
JDBC
入門
20
圖 20.1 應用程式、JDBC 與驅動程式之間的關係
簡單的說,
JDBC
希望達到的目的,是讓
Java
程式設計人員在撰
寫資料庫操作程式的時候,可以有個統一的操作介面,無需依賴於特
定的資料庫
API
,希望達到「寫一個
Java
程式,適用所有的資料庫」
的目的。
JDBC
資料庫驅動程式依實作方式可以分為四個類型:
Type 1:JDBC-ODBC Bridge
使用者的電腦上必須事先安裝好
ODBC
驅動程式,
Type 1
驅動程
式利用橋接(
Bridge
)方 式,將
JDBC
的呼叫方式轉換為
ODBC
驅動程
式的呼叫方式,例如
JDBC
存取
Microsoft Access
資料庫時就是使用這
種類型。
圖 20.2 Type 1: JDBC-ODBC Bridge
20-4
Type 2:Native-API Bridge
Type 2
驅動程式利用橋接方式,驅動程式上層包裝
Java
程式以與
Java
應用程式作溝通,將
JDBC
呼叫轉為原生(
Native
)程式碼的呼叫,
下層為原生語言(像是
C
、
C++
)來與資料庫作溝通,下層的函式庫是
針對特定資料庫設計的,不若
Type 1
可以針對
ODBC
架構的資料庫作
存取。
圖 20.3 Type 2: Native-API Bridge
Type 3:JDBC-middleware
透過中間件(
middleware
)來存取資料庫,使用者不必安裝特定的
驅動程式,而是呼叫中間件,由中間件來完成所有的資料庫存取動作,
然後將結果傳回給應用程式。
圖 20.4 Type 3: JDBC-moddleware
20-5
JDBC
入門
20
Type 4:Pure Java Driver
使用純
Java
程式來撰寫驅動程式與資料庫作溝通,而不透過橋接
或中間件來存取資料庫。
圖 20.5 Type 4: Pure Java Driver
在接下來的內容中,將使用
MySQL
資料庫系統進行操作。
MySQL
的
JDBC
驅動程式屬於
Type 4
。您可以在以下的網址取得
MySQL
的
JDBC
驅動程式,這個章節中將使用
MySQL Connector/J 5.0
:
http://www.mysql.com/products/connector/j/index.html
關於資料庫系統的使用與操作是個很大的主題,本書中並不針對這方面加以
介紹,請尋找相關的資料庫系統相關書籍自行學習,不過為了讓您能順利練
習這個章節的範例,附錄 C 中包括了一個 MySQL 資料庫系統的簡介,足夠
您了解這一個章節中,所將用到的一些資料庫操作指令。
20.1.2 連接資料庫
為了要連接資料庫系統,您必須要有
JDBC
驅動程式,由於接下
來將使用
MySQL
資料庫進行操作,所以請將下載回來的
tar.gz
檔案使
用解壓縮軟體解開,並將當中的
mysql-connector-java-*.jar
加入至
Classpath
的設定之中,假設是放在
c:\workspace\library\
mysql-connector-java-5.0.3-bin.jar
,則
Classpath
中必須有
c:\workspace\
library\mysql-connector-java-5.0.3-bin.jar
這個路徑設定。
良葛格的話匣子