通过将数据源功能与 JNDI 结合使用,就不需要注册供应商指定的 JDBC 驱动程序类名称,还可以将逻辑名称用于 URL 和其他属性,这样确保了用于打开数据库连接的代码可以移植到其他环境。
DataSource 接口
JDBC 数据源是实现标准 javax.sql.DataSource
接口类的实例,如下所示:
public interface DataSource
{
Connection getConnection() throws SQLException;
Connection getConnection(String username, String password)
throws SQLException;
...
}
OceanBase 数据库使用 ocanbase.jdbc.pool
软件包中的 OceanBaseDataSource
类实现此接口,通过 getConnection
方法重载返回到数据库的连接。
要使用其他值,可以使用适当的 Setter
方法设置对应属性。对于备用用户名和密码,还可以将这些参数作输入到 getConnection
方法,这优先于属性设置。
DataSource 属性
与实现 DataSource
接口的类一样,OceanBaseDataSource
类提供了一组属性,可用于指定要连接的数据库。这些属性遵循 JavaBeans 设计模式。
OceanBaseDataSource
依据 Sun Microsystems 规范的标准属性,如下表所示。
名称 | 类型 | 描述 |
---|---|---|
databaseName | String | 服务器上指定数据库的名称。 |
dataSourceName | String | 基础数据源类的名称。对于连接池,这是基础池连接数据源类。对于分布式事务,这是基础 XA 数据源类。 |
description | String | 对数据源的描述。 |
networkProtocol | String | 与服务器通信的网络协议。 |
password | String | 连接用户的密码。 |
portNumber | int | 服务器侦听请求的端口号。 |
serverName | String | 数据库服务器名称。 |
user | String | 登录名。 |
OceanBaseDataSource
扩展的数据源属性如下表所示。
名称 | 类型 | 描述 |
---|---|---|
connectionCacheName | String | 指定缓存的名称。创建缓存后无法更改。 |
connectionCacheProperties | java.util.Properties | 指定隐式连接缓存的属性。 |
connectionCachingEnabled | Boolean | 指定是否使用隐式连接缓存。 |
connectionProperties | java.util.Properties | 指定连接属性。 |
driverType | String | 指定 JDBC 驱动程序类型。 |
fastConnectionFailoverEnabled | Boolean | 指定是否正在使用快速连接故障转移。 |
implicitCachingEnabled | Boolean | 指定是否启用隐式语句连接缓存。 |
loginTimeout | int | 指定此数据源在尝试连接到数据库时将等待的最长时间(以秒为单位)。 |
logWriter | java.io.PrintWriter | 指定此数据源的日志编写器。 |
maxStatements | int | 指定应用程序缓存中的最大语句数。 |
serviceName | String | 指定此数据源的数据库服务名称。 |
tnsEntry | String | 指定 TNS 条目名称。TNS 条目名称对应于 |
url | String | 指定数据库连接字符串的 URL。可以使用此属性代替 |
ONSConfiguration | String | 指定用于远程订阅 FAN/ONS 事件的 ONS 配置字符串。 |
使用 setConnectionProperties
方法设置连接的属性,并使用 setConnectionCacheProperties
方法设置连接缓存的属性。另外,只有在对数据源启用了缓存之后才设置了数据源的 ConnectionCacheName
属性,getConnectionCacheName()
才会返回缓存的名称。
作者:冒牌SEO,如若转载,请注明出处:https://www.web176.com/oceanbase/26558.html