DataSource
public interface DataSource
extends CommonDataSource, Wrapper
用于连接到此 DataSource 对象所代表的物理数据源的工厂。 作为 DriverManager 工具的替代方法,DataSource 对象是获取连接的首选方法。 实现 DataSource 接口的对象通常会向基于 Java™ Naming and Directory (JNDI) API 的命名服务注册。
DataSource 接口由驱动程序供应商实现。 有三种类型的实现:
- 基本实现——产生一个标准的 Connection 对象
- 连接池实现——生成一个将自动参与连接池的连接对象。 此实现与中间层连接池管理器一起使用。
- 分布式事务实现——生成一个可用于分布式事务并且几乎总是参与连接池的 Connection 对象。 此实现与中间层事务管理器一起使用,并且几乎总是与连接池管理器一起使用。
DataSource 对象具有可在必要时修改的属性。 例如,如果将数据源移动到不同的服务器,则可以更改服务器的属性。 好处是因为可以更改数据源的属性,因此无需更改访问该数据源的任何代码。
通过 DataSource 对象访问的驱动程序不会将自身注册到 DriverManager。 相反,通过查找操作检索 DataSource 对象,然后用于创建 Connection 对象。 通过基本实现,通过 DataSource 对象获得的连接与通过 DriverManager 工具获得的连接相同。
DataSource 的实现必须包含一个公共的无参数构造函数。
Since:
1.4
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
Connection | getConnection() | 尝试与此 DataSource 对象所代表的数据源建立连接。 |
Connection | getConnection(String username, String password) | 尝试与此 DataSource 对象所代表的数据源建立连接。 |
从接口 javax.sql.CommonDataSource 继承的方法 |
---|
getLoginTimeout, getLogWriter, getParentLogger, setLoginTimeout, setLogWriter |
从接口 java.sql.Wrapper 继承的方法 |
---|
isWrapperFor, unwrap |
方法详情
getConnection
Connection getConnection() throws SQLException
尝试与此 DataSource 对象所代表的数据源建立连接。
返回:
与数据源的连接
Throws:
Throw名称 | Throw描述 |
---|---|
SQLException | 如果发生数据库访问错误 |
SQLTimeoutException | 当驱动程序确定已超过 setLoginTimeout 方法指定的超时值并至少尝试取消当前数据库连接尝试时 |
getConnection
Connection getConnection(String username, String password) throws SQLException
尝试与此 DataSource 对象所代表的数据源建立连接。
参数:
参数名称 | 参数描述 |
---|---|
username | 代表其建立连接的数据库用户 |
password | 用户密码 |
返回:
与数据源的连接
Throws:
Throw名称 | Throw描述 |
---|---|
SQLException | 如果发生数据库访问错误 |
SQLTimeoutException | 当驱动程序确定已超过 setLoginTimeout 方法指定的超时值并至少尝试取消当前数据库连接尝试时 |
Since:
1.4