OceanBase 数据源的特性和属性
通过将数据源功能与 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()
才会返回缓存的名称。