軟體包 java.sql
提供使用 JavaTM 程式設計語言訪問並處理儲存在資料來源(通常是一個關聯式資料庫)中的資料的 API。
java.sql
介面 Driver
-
public interface Driver
每個驅動程式類必須實現的介面。
Java SQL 架構允許多個資料庫驅動程式。
每個驅動程式都應該提供一個實現 Driver 介面的類。
DriverManager 會試著載入儘可能多的它可以找到的驅動程式,然後,對於任何給定串連請求,它會讓每個驅動程式依次試著串連到目標 URL。
強烈建議每個 Driver 類應該是小型的並且是單獨的,這樣就可以在不必引入大量支援代碼的情況下載入和查詢 Driver 類。
在載入某一 Driver 類時,它應該建立自己的執行個體並向 DriverManager 註冊該執行個體。這意味著使用者可以通過調用以下程式載入和註冊一個驅動程式
Class.forName("foo.bah.Driver")
java.sql
介面 Connection
-
public interface Connection
與特定資料庫的串連(會話)。在串連上下文中執行 SQL 陳述式並返回結果。
Connection 對象的資料庫能夠提供資訊描述其表、所支援的 SQL 文法、預存程序和此串連的功能等。此資訊是使用
getMetaData 方法獲得的。
註:預設情況下,Connection
對象處於自動認可模式下,這意味著它在執行每個語句後都會自動認可更改。如果禁用自動認可模式,為了提交更改,必須顯式調用 commit
方法;否則無法儲存資料庫更改。
使用 JDBC 2.1 核心 API 建立的 Connection
對象有一個與之關聯的最初為空白的類型映射表。使用者可以為此類型映射表中的 UDT 輸入一個自訂映射關係。在使用
ResultSet.getObject 方法從資料來源中檢索 UDT 時,getObject
方法將檢查該串連的類型映射表,以查看是否有對應該 UDT 的項。如果有,那麼 getObject 方法會將該 UDT
映射到所指示的類。如果沒有項,則會使用標準映射關係映射該 UDT。
使用者可以建立一個新的類型映射表,該映射表是一個 java.util.Map
對象,可在其中建立一個項,並將該項傳遞給可以執行自訂映射關係的 java.sql
方法。在這種情況下,該方法將使用給定的類型映射表,而不是與串連相關聯的映射表。
例如,以下程式碼片段指定 SQL 類型 ATHLETES 將被映射到 Java 程式設計語言中的
Athletes 類。該程式碼片段為 Connection 對象 con
擷取類型映射表,並在其中插入一些項,然後使用新的項將該類型映射表設定為串連的類型映射表。
java.util.Map map = con.getTypeMap(); map.put("mySchemaName.ATHLETES", Class.forName("Athletes")); con.setTypeMap(map);
java.sql
類 DriverManagerjava.lang.Object java.sql.DriverManager
-
public class DriverManager
-
extends Object
管理一組 JDBC 驅動程式的基本服務。
註:DataSource 介面是 JDBC 2.0 API
中的新增內容,它提供了串連到資料來源的另一種方法。使用 DataSource 對象是串連到資料來源的首選方法。
作為初始化的一部分,DriverManager 類會嘗試載入在 "jdbc.drivers"
系統屬性中引用的驅動程式類。這允許使用者自訂由他們的應用程式使用的 JDBC Driver。例如,在 ~/.hotjava/properties
檔案中,使用者可以指定:
jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
程式還可以在任意時間顯式地載入 JDBC 驅動程式。例如,my.sql.Driver 是使用以下語句載入的:
Class.forName("my.sql.Driver");
在調用 getConnection 方法時,DriverManager
會試著從初始化時載入的那些驅動程式以及使用與當前 applet 或應用程式相同的類載入器明確式載入的那些驅動程式中尋找合適的驅動程式。