- 所有超级接口:
-
CommonDataSource
,Wrapper
连接到此DataSource
对象表示的物理数据源的连接工厂。作为DriverManager
设施的替代方案,DataSource
对象是获取连接的首选方式。实现DataSource
接口的对象通常会在基于Java命名和目录(JNDI)API的命名服务中注册。
DataSource
接口由驱动程序供应商实现。有三种类型的实现:
- 基本实现 -- 生成标准的
Connection
对象 - 连接池实现 -- 生成一个
Connection
对象,该对象将自动参与连接池。此实现与中间层连接池管理器一起工作。 - 分布式事务实现 -- 生成一个
Connection
对象,可用于分布式事务,并几乎总是参与连接池。此实现与中间层事务管理器以及几乎总是与连接池管理器一起工作。
DataSource
对象具有在必要时可以修改的属性。例如,如果数据源移动到不同的服务器,可以更改服务器的属性。好处是,因为数据源的属性可以更改,访问该数据源的任何代码都不需要更改。
通过DataSource
对象访问的驱动程序不会向DriverManager
注册自身。相反,通过查找操作检索DataSource
对象,然后用于创建Connection
对象。使用基本实现时,通过DataSource
对象获取的连接与通过DriverManager
设施获取的连接相同。
DataSource
的实现必须包括一个公共无参构造函数。
- 自1.4版本起:
- 1.4
-
Method Summary
Modifier and TypeMethodDescriptiondefault ConnectionBuilder
创建一个新的ConnectionBuilder
实例尝试与此DataSource
对象表示的数据源建立连接。getConnection
(String username, String password) 尝试与此DataSource
对象表示的数据源建立连接。int
获取此数据源在尝试连接到数据库时可以等待的最长时间(以秒为单位)。检索此DataSource
对象的日志写入器。void
setLoginTimeout
(int seconds) 设置此数据源在尝试连接到数据库时将等待的最长时间(以秒为单位)。void
setLogWriter
(PrintWriter out) 将此DataSource
对象的日志写入器设置为给定的java.io.PrintWriter
对象。Methods declared in interface javax.sql.CommonDataSource
createShardingKeyBuilder, getParentLogger
Methods declared in interface java.sql.Wrapper
isWrapperFor, unwrap
-
Method Details
-
getConnection
尝试与此
DataSource
对象表示的数据源建立连接。- 返回:
- 数据源的连接
- 抛出:
-
SQLException
- 如果发生数据库访问错误 -
SQLTimeoutException
- 当驱动程序确定已超过setLoginTimeout
方法指定的超时值,并且至少尝试取消当前数据库连接尝试时
-
getConnection
尝试与此
DataSource
对象表示的数据源建立连接。- 参数:
-
username
- 进行连接的数据库用户 -
password
- 用户的密码 - 返回:
- 数据源的连接
- 抛出:
-
SQLException
- 如果发生数据库访问错误 -
SQLTimeoutException
- 当驱动程序确定已超过setLoginTimeout
方法指定的超时值,并且至少尝试取消当前数据库连接尝试时 - 自1.4版本起:
- 1.4
-
getLogWriter
检索此
DataSource
对象的日志写入器。日志写入器是一个字符输出流,用于打印此数据源的所有日志和跟踪消息。这包括由此对象的方法打印的消息,由此对象制造的其他对象的方法打印的消息等。打印到特定数据源日志写入器的消息不会打印到与
java.sql.DriverManager
类关联的日志写入器。创建DataSource
对象时,日志写入器最初为null;换句话说,默认情况下日志记录被禁用。- 指定者:
-
getLogWriter
在接口CommonDataSource
- 返回:
- 此数据源的日志写入器,如果日志记录被禁用,则为null
- 抛出:
-
SQLException
- 如果发生数据库访问错误 - 自1.4版本起:
- 1.4
- 参见:
-
setLogWriter
将此
DataSource
对象的日志写入器设置为给定的java.io.PrintWriter
对象。日志写入器是一个字符输出流,用于打印此数据源的所有日志和跟踪消息。这包括由此对象的方法打印的消息,由此对象制造的其他对象的方法打印的消息等。打印到特定数据源日志写入器的消息不会打印到与
java.sql.DriverManager
类关联的日志写入器。创建DataSource
对象时,日志写入器最初为null;换句话说,默认情况下日志记录被禁用。- 指定者:
-
setLogWriter
在接口CommonDataSource
- 参数:
-
out
- 新的日志写入器;要禁用日志记录,请设置为null - 抛出:
-
SQLException
- 如果发生数据库访问错误 - 自1.4版本起:
- 1.4
- 参见:
-
setLoginTimeout
设置此数据源在尝试连接到数据库时将等待的最长时间(以秒为单位)。如果值为零,则指定超时为默认系统超时(如果有);否则,指定没有超时。创建
DataSource
对象时,登录超时最初为零。- 指定者:
-
setLoginTimeout
在接口CommonDataSource
- 参数:
-
seconds
- 数据源登录时间限制 - 抛出:
-
SQLException
- 如果发生数据库访问错误。 - 自1.4版本起:
- 1.4
- 参见:
-
getLoginTimeout
获取此数据源在尝试连接到数据库时可以等待的最长时间(以秒为单位)。如果值为零,则超时为默认系统超时(如果有);否则,表示没有超时。创建DataSource
对象时,登录超时最初为零。- 指定者:
-
getLoginTimeout
在接口CommonDataSource
- 返回:
- 数据源登录时间限制
- 抛出:
-
SQLException
- 如果发生数据库访问错误。 - 自1.4版本起:
- 1.4
- 参见:
-
createConnectionBuilder
创建一个新的ConnectionBuilder
实例- 实现要求:
-
默认实现将抛出一个
SQLFeatureNotSupportedException
- 返回:
- 创建的ConnectionBuilder实例
- 抛出:
-
SQLException
- 如果创建构建器时发生错误 -
SQLFeatureNotSupportedException
- 如果驱动程序不支持分片 - 自9版本起:
- 9
- 参见:
-