Java SQL框架允许使用多个数据库驱动程序。
每个驱动程序应提供一个实现Driver接口的类。
驱动程序管理器将尝试加载尽可能多的驱动程序,然后对于任何给定的连接请求,它将依次要求每个驱动程序尝试连接到目标URL。
强烈建议每个Driver类应该小而独立,以便可以加载和查询Driver类而不会引入大量的支持代码。
当加载Driver类时,它应创建自身的实例并将其注册到DriverManager。这意味着用户可以通过调用以下方式加载和注册驱动程序:
Class.forName("foo.bah.Driver")
JDBC驱动程序可以创建一个DriverAction实现,以便在调用DriverManager.deregisterDriver(java.sql.Driver)时接收通知。
- 自版本:
- 1.1
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionboolean
acceptsURL
(String url) 检索驱动程序是否认为它可以打开到给定URL的连接。connect
(String url, Properties info) 尝试连接到给定URL的数据库连接。int
检索驱动程序的主要版本号。int
获取驱动程序的次要版本号。返回此驱动程序使用的所有Logger的父Logger。getPropertyInfo
(String url, Properties info) 获取有关此驱动程序可能属性的信息。boolean
报告此驱动程序是否是真正的JDBC兼容驱动程序。
-
Method Details
-
connect
尝试连接到给定URL的数据库。如果驱动程序意识到自己是连接到给定URL的错误类型的驱动程序,则驱动程序应返回“null”。这是常见的情况,因为当JDBC驱动程序管理器被要求连接到给定URL时,它会依次将URL传递给每个加载的驱动程序。如果是连接到给定URL的正确驱动程序,但在连接到数据库时遇到问题,则驱动程序应抛出一个
SQLException
。可以使用
Properties
参数传递任意字符串标签/值对作为连接参数。通常,Properties
对象中至少应包含“user”和“password”属性。注意: 如果属性作为
url
的一部分指定,并且也在Properties
对象中指定,则哪个值优先取决于实现。为了最大的可移植性,应用程序应该只指定一个属性一次。- 参数:
-
url
- 要连接的数据库的URL -
info
- 作为连接参数的任意字符串标签/值对列表。通常至少应包含“user”和“password”属性。 - 返回:
-
代表与URL的连接的
Connection
对象 - 抛出:
-
SQLException
- 如果发生数据库访问错误或url为null
-
acceptsURL
检索驱动程序是否认为它可以打开到给定URL的连接。通常,如果驱动程序理解URL中指定的子协议,则驱动程序将返回true
,否则将返回false
。- 参数:
-
url
- 数据库的URL - 返回:
-
如果此驱动程序理解给定的URL,则返回
true
; 否则返回false
- 抛出:
-
SQLException
- 如果发生数据库访问错误或url为null
-
getPropertyInfo
获取有关此驱动程序可能属性的信息。getPropertyInfo
方法旨在允许通用GUI工具发现应提示人类提供哪些属性,以便获取足够的信息以连接到数据库。请注意,根据人类目前提供的值,可能需要额外的值,因此可能需要通过多次调用getPropertyInfo
方法来迭代。- 参数:
-
url
- 要连接的数据库的URL -
info
- 将在连接打开时发送的建议的标签/值对列表 - 返回:
-
描述可能属性的
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实现可能不可行。
- 返回:
-
如果此驱动程序符合JDBC标准,则返回
true
; 否则返回false
-
getParentLogger
返回此驱动程序使用的所有Logger的父Logger。这应该是离根Logger最远但仍是此驱动程序的所有Logger的祖先的Logger。配置此Logger将影响驱动程序生成的所有日志消息。在最坏的情况下,这可能是根Logger。- 返回:
- 此驱动程序的父Logger
- 抛出:
-
SQLFeatureNotSupportedException
- 如果驱动程序不使用java.util.logging
。 - 自版本:
- 1.7
-