JavaTM 2 Platform
Standard Ed. 6

java.sql
類別 DriverManager

java.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
 

DriverManager 類別的方法 getConnectiongetDrivers 已經得到提高以支持 Java Standard Edition Service Provider 機制。 JDBC 4.0 Drivers 必須包括 META-INF/services/java.sql.Driver 檔案。此檔案包含 java.sql.Driver 的 JDBC 驅動程序實作的名稱。例如,要載入 my.sql.Driver 類別,META-INF/services/java.sql.Driver 檔案需要包含下面的條目:

 my.sql.Driver
 

應用程序不再需要使用 Class.forName() 顯式地載入 JDBC 驅動程序。當前使用 Class.forName() 載入 JDBC 驅動程序的現有程序將在不作修改的情況下繼續工作。

在調用 getConnection 方法時,DriverManager 會試著從初始化時載入的那些驅動程序以及使用與當前 applet 或應用程序相同的類別載入器顯式載入的那些驅動程序中尋找合適的驅動程序。

從 Java 2 SDK 標準版本 1.3 版開始,只有當已授予適當權限時設置日誌串流。通常這將使用工具 PolicyTool 完成,該工具可用於授予 permission java.sql.SQLPermission "setLog" 權限。

另請參見:
Driver, Connection

方法摘要
static void deregisterDriver(Driver driver)
          從 DriverManager 的列表中刪除一個驅動程序。
static Connection getConnection(String url)
          試圖建立到給定資料庫 URL 的連接。
static Connection getConnection(String url, Properties info)
          試圖建立到給定資料庫 URL 的連接。
static Connection getConnection(String url, String user, String password)
          試圖建立到給定資料庫 URL 的連接。
static Driver getDriver(String url)
          試圖尋找能理解給定 URL 的驅動程序。
static Enumeration<Driver> getDrivers()
          獲取帶有當前調用者可以存取的所有當前已載入 JDBC 驅動程序的 Enumeration。
static int getLoginTimeout()
          獲取驅動程序試圖登錄到某一資料庫時可以等待的最長時間,以秒為單位。
static PrintStream getLogStream()
          已過時。  
static PrintWriter getLogWriter()
          獲取日誌 writer。
static void println(String message)
          將一條訊息列印到當前 JDBC 日誌串流中。
static void registerDriver(Driver driver)
          向 DriverManager 註冊給定驅動程序。
static void setLoginTimeout(int seconds)
          設置驅動程序試圖連接到某一資料庫時將等待的最長時間,以秒為單位。
static void setLogStream(PrintStream out)
          已過時。  
static void setLogWriter(PrintWriter out)
          設置由 DriverManager 和所有驅動程序使用的日誌/追蹤 PrintWriter 物件。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法詳細資訊

getLogWriter

public static PrintWriter getLogWriter()
獲取日誌 writer。應該使用 getLogWritersetLogWriter 方法,而不是使用 get/setlogStream 方法,後者已不建議使用。

返回:
java.io.PrintWriter 物件
從以下版本開始:
1.2
另請參見:
setLogWriter(java.io.PrintWriter)

setLogWriter

public static void setLogWriter(PrintWriter out)
設置由 DriverManager 和所有驅動程序使用的日誌/追蹤 PrintWriter 物件。

存在一個因為引入 setLogWriter 方法而導致的次版本問題。setLogWriter 方法無法創建將由 getLogStream 返回的 PrintStream 物件,Java 版本不提供後向轉換。結果,使用 setLogWriter 的新應用程序以及仍然使用利用 getLogStream 的 JDBC 1.0 驅動程序的新程序很可能將無法查看由該驅動程序寫入的除錯資訊。

從 Java 2 SDK 標準版 1.3 版開始,此方法將查看設置日誌串流之前是否有 SQLPermission 物件。如果存在 SecurityManager 並且其 checkPermission 方法拒絕設置日誌 writer,則此方法將拋出 java.lang.SecurityException

參數:
out - 新的日誌/追蹤 PrintStream 物件;null 表示禁止日誌和追蹤
拋出:
SecurityException - 如果安全管理器存在並且其 checkPermission 方法拒絕設置日誌 writer
從以下版本開始:
1.2
另請參見:
SecurityManager.checkPermission(java.security.Permission), getLogWriter()

getConnection

public static Connection getConnection(String url,
                                       Properties info)
                                throws SQLException
試圖建立到給定資料庫 URL 的連接。DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。

參數:
url - jdbc:subprotocol:subname 形式的資料庫 url
info - 作為連接參數的任意字元串標記/值對的列表;通常至少應該套件括 "user" 和 "password" 屬性
返回:
a 到 URL 的連接
拋出:
SQLException - 如果發生資料庫存取錯誤

getConnection

public static Connection getConnection(String url,
                                       String user,
                                       String password)
                                throws SQLException
試圖建立到給定資料庫 URL 的連接。DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。

參數:
url - jdbc:subprotocol:subname 形式的資料庫 url
user - 資料庫使用者,連接是為該使用者建立的
password - 使用者的密碼
返回:
到 URL 的連接
拋出:
SQLException - 如果發生資料庫存取錯誤

getConnection

public static Connection getConnection(String url)
                                throws SQLException
試圖建立到給定資料庫 URL 的連接。DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。

參數:
url - jdbc:subprotocol:subname 形式的資料庫 url
返回:
到 URL 的連接
拋出:
SQLException - 如果發生資料庫存取錯誤

getDriver

public static Driver getDriver(String url)
                        throws SQLException
試圖尋找能理解給定 URL 的驅動程序。DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。

參數:
url - jdbc:subprotocol:subname 形式的資料庫 URL
返回:
表示可以連接到給定 URL 的驅動程序的 Driver 物件
拋出:
SQLException - 如果發生資料庫存取錯誤

registerDriver

public static void registerDriver(Driver driver)
                           throws SQLException
DriverManager 註冊給定驅動程序。新載入的驅動程序類別應該調用 registerDriver 方法讓 DriverManager 知道自己。

參數:
driver - 將向 DriverManager 註冊的新的 JDBC Driver
拋出:
SQLException - 如果發生資料庫存取錯誤

deregisterDriver

public static void deregisterDriver(Driver driver)
                             throws SQLException
DriverManager 的列表中刪除一個驅動程序。applet 只能註銷取自其自身的類別載入器的驅動程序。

參數:
driver - 要刪除的 JDBC Driver
拋出:
SQLException - 如果發生資料庫存取錯誤

getDrivers

public static Enumeration<Driver> getDrivers()
獲取帶有當前調用者可以存取的所有當前已載入 JDBC 驅動程序的 Enumeration。

註:驅動程序的類別名稱可以使用 d.getClass().getName() 得到

返回:
由調用者的類別載入器載入的 JDBC Driver 組成的列表

setLoginTimeout

public static void setLoginTimeout(int seconds)
設置驅動程序試圖連接到某一資料庫時將等待的最長時間,以秒為單位。

參數:
seconds - 登錄時間限制,以秒為單位;0 表示沒有限制
另請參見:
getLoginTimeout()

getLoginTimeout

public static int getLoginTimeout()
獲取驅動程序試圖登錄到某一資料庫時可以等待的最長時間,以秒為單位。

返回:
驅動程序登錄時間限制,以秒為單位
另請參見:
setLoginTimeout(int)

setLogStream

public static void setLogStream(PrintStream out)
已過時。 

設置由 DriverManager 和所有驅動程序使用的日誌/追蹤 PrintStream。

在 Java 2 SDK 標準版 1.3 版中,此方法將查看設置日誌串流之前是否有 SQLPermission 物件。如果存在 SecurityManager 並且其 checkPermission 方法拒絕設置日誌 writer,則此方法將拋出 java.lang.SecurityException

參數:
out - 新的日誌/追蹤 PrintStream;要禁止日誌和追蹤,可將該參數設置為 null
拋出:
SecurityException - 如果安全管理器存在並且其 checkPermission 方法拒絕設置日誌串流
另請參見:
SecurityManager.checkPermission(java.security.Permission), getLogStream()

getLogStream

public static PrintStream getLogStream()
已過時。 

獲取由 DriverManager 和所有驅動程序使用的日誌/追蹤 PrintStream。

返回:
日誌/追蹤 PrintStream;如果禁止日誌和追蹤,則返回 null
另請參見:
setLogStream(java.io.PrintStream)

println

public static void println(String message)
將一條訊息列印到當前 JDBC 日誌串流中。

參數:
message - 一條日誌或追蹤訊息

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only