Java SQL 框架允许多个数据库驱动程序。
每个驱动程序都应该提供一个实现 Driver 接口的类。
DriverManager 将尝试加载它能找到的尽可能多的驱动程序,然后对于任何给定的连接请求,它将依次要求每个驱动程序尝试连接到目标 URL。
强烈建议每个 Driver 类都应该是小的和独立的,这样就可以加载和查询 Driver 类,而无需引入大量的支持代码。
当一个 Driver 类被加载时,它应该创建一个自己的实例并将它注册到 DriverManager。这意味着用户可以通过调用来加载和注册驱动程序:
Class.forName("foo.bah.Driver")
JDBC 驱动程序可以创建一个 DriverAction 实现,以便在调用 DriverManager.deregisterDriver(java.sql.Driver) 时接收通知。
- 自从:
- 1.1
- 参见:
-
方法总结
修饰符和类型方法描述booleanacceptsURL(String url) 检索驱动程序是否认为它可以打开到给定 URL 的连接。connect(String url, Properties info) 尝试建立到给定 URL 的数据库连接。int检索驱动程序的主要版本号。int获取驱动程序的次要版本号。返回此驱动程序使用的所有记录器的父记录器。getPropertyInfo(String url, Properties info) 获取有关此驱动程序的可能属性的信息。boolean报告此驱动程序是否是真正的 JDBC 兼容驱动程序。
-
方法详情
-
connect
尝试建立到给定 URL 的数据库连接。如果驱动程序意识到连接到给定 URL 的驱动程序类型错误,则它应该返回“null”。这很常见,因为当要求 JDBC 驱动程序管理器连接到给定的 URL 时,它会将 URL 依次传递给每个加载的驱动程序。如果驱动程序是连接给定 URL 的正确驱动程序,但在连接到数据库时遇到问题,则驱动程序应抛出
SQLException。Properties参数可用于将任意字符串标记/值对作为连接参数传递。通常至少应在Properties对象中包含“用户”和“密码”属性。笔记:如果属性被指定为
url的一部分,并且还在Properties对象中指定,则实现定义哪个值优先。为了获得最大的可移植性,应用程序应该只指定一个属性一次。- 参数:
url- 要连接的数据库的 URLinfo- 作为连接参数的任意字符串标记/值对列表。通常至少应包括“用户”和“密码”属性。- 返回:
-
代表 URL 连接的
Connection对象 - 抛出:
SQLException- 如果发生数据库访问错误或 url 为null
-
acceptsURL
检索驱动程序是否认为它可以打开到给定 URL 的连接。通常,如果驱动程序理解 URL 中指定的子协议,它们将返回true,否则将返回false。- 参数:
url- 数据库的 URL- 返回:
true如果此驱动程序理解给定的 URL;false否则- 抛出:
SQLException- 如果发生数据库访问错误或 url 为null
-
getPropertyInfo
获取有关此驱动程序的可能属性的信息。getPropertyInfo方法旨在允许通用 GUI 工具发现它应该提示人们输入哪些属性,以便获得足够的信息来连接到数据库。请注意,根据人类目前提供的值,可能需要额外的值,因此可能需要迭代多次调用getPropertyInfo方法。- 参数:
url- 要连接的数据库的 URLinfo- 建议的标签/值对列表,将在连接打开时发送- 返回:
-
描述可能属性的
DriverPropertyInfo对象数组。如果不需要属性,则此数组可以是空数组。 - 抛出:
SQLException- 如果发生数据库访问错误
-
getMajorVersion
int getMajorVersion()检索驱动程序的主要版本号。最初这应该是 1。- 返回:
- 此驱动程序的主要版本号
-
getMinorVersion
int getMinorVersion()获取驱动程序的次要版本号。最初这应该是 0。- 返回:
- 此驱动程序的次要版本号
-
jdbcCompliant
boolean jdbcCompliant()报告此驱动程序是否是真正的 JDBC 兼容驱动程序。如果驱动程序通过了 JDBC 合规性测试,则只能在此处报告true;否则需要返回false。JDBC 合规性要求全面支持 JDBC API 和全面支持 SQL 92 Entry Level。预计 JDBC 兼容的驱动程序将可用于所有主要的商业数据库。
此方法无意鼓励开发非 JDBC 兼容的驱动程序,但承认一些供应商有兴趣将 JDBC API 和框架用于不支持完整数据库功能的轻型数据库或特殊数据库例如,SQL 实现可能不可行的文档信息检索。
- 返回:
true如果此驱动程序符合 JDBC;false否则
-
getParentLogger
返回此驱动程序使用的所有记录器的父记录器。这应该是距离根 Logger 最远的 Logger,它仍然是该驱动程序使用的所有 Logger 的祖先。配置此记录器将影响驱动程序生成的所有日志消息。在最坏的情况下,这可能是根 Logger。- 返回:
- 此驱动程序的父记录器
- 抛出:
SQLFeatureNotSupportedException- 如果驱动程序不使用java.util.logging。- 自从:
- 1.7
-