|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.sql.DriverManager
public class DriverManager
管理一組 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 類別的方法 getConnection 和 getDrivers 已經得到提高以支持 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 |
| 方法詳細資訊 |
|---|
public static PrintWriter getLogWriter()
getLogWriter 和 setLogWriter 方法,而不是使用 get/setlogStream 方法,後者已不建議使用。
java.io.PrintWriter 物件setLogWriter(java.io.PrintWriter)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 方法拒絕設置日誌 writerSecurityManager.checkPermission(java.security.Permission),
getLogWriter()
public static Connection getConnection(String url,
Properties info)
throws SQLException
DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。
url - jdbc:subprotocol:subname 形式的資料庫 urlinfo - 作為連接參數的任意字元串標記/值對的列表;通常至少應該套件括 "user" 和 "password" 屬性
SQLException - 如果發生資料庫存取錯誤
public static Connection getConnection(String url,
String user,
String password)
throws SQLException
DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。
url - jdbc:subprotocol:subname 形式的資料庫 urluser - 資料庫使用者,連接是為該使用者建立的password - 使用者的密碼
SQLException - 如果發生資料庫存取錯誤
public static Connection getConnection(String url)
throws SQLException
DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。
url - jdbc:subprotocol:subname 形式的資料庫 url
SQLException - 如果發生資料庫存取錯誤
public static Driver getDriver(String url)
throws SQLException
DriverManager 試圖從已註冊的 JDBC 驅動程序集中選擇一個適當的驅動程序。
url - jdbc:subprotocol:subname 形式的資料庫 URL
Driver 物件
SQLException - 如果發生資料庫存取錯誤
public static void registerDriver(Driver driver)
throws SQLException
DriverManager 註冊給定驅動程序。新載入的驅動程序類別應該調用 registerDriver 方法讓 DriverManager 知道自己。
driver - 將向 DriverManager 註冊的新的 JDBC Driver
SQLException - 如果發生資料庫存取錯誤
public static void deregisterDriver(Driver driver)
throws SQLException
DriverManager 的列表中刪除一個驅動程序。applet 只能註銷取自其自身的類別載入器的驅動程序。
driver - 要刪除的 JDBC Driver
SQLException - 如果發生資料庫存取錯誤public static Enumeration<Driver> getDrivers()
註:驅動程序的類別名稱可以使用 d.getClass().getName() 得到
public static void setLoginTimeout(int seconds)
seconds - 登錄時間限制,以秒為單位;0 表示沒有限制getLoginTimeout()public static int getLoginTimeout()
setLoginTimeout(int)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()public static PrintStream getLogStream()
DriverManager 和所有驅動程序使用的日誌/追蹤 PrintStream。
nullsetLogStream(java.io.PrintStream)public static void println(String message)
message - 一條日誌或追蹤訊息
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。