JavaTM 2 Platform
Standard Ed. 5.0

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
 
程序还可以在任意时间显式地加载 JDBC 驱动程序。例如,my.sql.Driver 是使用以下语句加载的:
 Class.forName("my.sql.Driver");
 

在调用 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()
          检索记录写入器。
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()
检索记录写入器。应该使用 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 方法拒绝设置记录写入器,则此方法将抛出 java.lang.SecurityException

参数:
out - 新的记录/追踪 PrintStream 对象;null 表示禁止记录和追踪
抛出:
SecurityException - 如果安全管理器存在并且其 checkPermission 方法拒绝设置记录写入器
从以下版本开始:
1.2
另请参见:
SecurityManager.checkPermission(java.security.Permission), getLogWriter()

getConnection

public static Connection getConnection(String url,
                                       Properties info)
                                throws SQLException
试图建立到给定数据库 URL 的连接。DriverManager 试图从已注册的驱动程序集中选择一个适当的驱动程序。

参数:
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 试图从已注册的驱动程序集中选择一个适当的驱动程序。

参数:
url - jdbc:subprotocol:subname 形式的数据库 url
user - 数据库用户,连接是为该用户建立的
password - 用户的密码
返回:
到 URL 的连接
抛出:
SQLException - 如果发生数据库访问错误

getConnection

public static Connection getConnection(String url)
                                throws SQLException
试图建立到给定数据库 URL 的连接。DriverManager 试图从已注册的驱动程序集中选择一个适当的驱动程序。

参数:
url - jdbc:subprotocol:subname 形式的数据库 url
返回:
到 URL 的连接
抛出:
SQLException - 如果发生数据库访问错误

getDriver

public static Driver getDriver(String url)
                        throws SQLException
试图查找能理解给定 URL 的驱动程序。DriverManager 试图从已注册的驱动程序集中选择一个适当的驱动程序。

参数:
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 Drivers 组成的列表

setLoginTimeout

public static void setLoginTimeout(int seconds)
设置驱动程序试图连接到某一数据库时将等待的最长时间,以秒为单位。

参数:
seconds - 登录时间限制,以秒为单位
另请参见:
getLoginTimeout()

getLoginTimeout

public static int getLoginTimeout()
获得驱动程序试图登录到某一数据库时可以等待的最长时间,以秒为单位。

返回:
驱动程序登录时间限制,以秒为单位
另请参见:
setLoginTimeout(int)

setLogStream

@Deprecated
public static void setLogStream(PrintStream out)
已过时。 

设置由 DriverManager 和所有驱动程序使用的记录/追踪 PrintStream。

在 Java 2 SDK 标准版 1.3 版中,此方法将查看设置记录流之前是否有 SQLPermission 对象。如果存在 SecurityManager 并且其 checkPermission 方法拒绝设置记录写入器,则此方法将抛出 java.lang.SecurityException

参数:
out - 新的记录/追踪 PrintStream;要禁止记录和追踪,可将该参数设置为 null
抛出:
SecurityException - 如果安全管理器存在并且其 checkPermission 方法拒绝设置记录流
另请参见:
SecurityManager.checkPermission(java.security.Permission), getLogStream()

getLogStream

@Deprecated
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. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策