OceanBase 创建数据源实例并连接
本节主要介绍如何创建最基本的使用数据源连接到数据库的示例,并且需要使用供应商指定的的硬编码属性设置。
创建一个 OceanBaseDataSource
实例,对其连接属性进行初始化,然后获取一个连接实例,如下例所示:
OceanBaseDataSource obds = new OceanBaseDataSource();
obds.setDriverType("oceanbase-client");
obds.setServerName("dlsun111");
obds.setNetworkProtocol("tcp");
obds.setDatabaseName("312");
obds.setPortNumber(1522);
obds.setUser("adam");
obds.setPassword("apple");
Connection conn = obds.getConnection();
或者可以选择覆盖用户名和密码,如下例所示:
Connection conn = obds.getConnection("alice", "orange");
在使用数据源连接到数据库时支持使用 JNDI 功能。但仅在将数据源实例绑定到 JNDI 逻辑名称的代码中才需要供应商指定的硬编码属性设置。您可以在创建数据源时使用逻辑名来创建可移植代码,从中获取连接实例。
创建数据源实例,注册 JNDI 并连接的步骤如下:
-
初始化数据源属性
创建一个
OceanBaseDataSource
实例,然后根据需要初始化其属性,如下例所示:OceanBaseDataSource obds = new OceanBaseDataSource(); obds.setDriverType("oceanbase-client"); obds.setServerName("dlsun111"); obds.setNetworkProtocol("tcp"); obds.setDatabaseName("312"); obds.setPortNumber(1522); obds.setUser("adam"); obds.setPassword("apple");
-
注册数据源
初始化
OceanBaseDataSource
实例的连接属性后,就可以向 JNDI 注册该数据源实例,如下例所示:Context obctx = new InitialContext(); obctx.bind("jdbc/sampleobdb", obds);
调用 JNDI
InitialContext()
构造函数将创建一个引用初始 JNDI 命名文本的 Java 对象。系统属性(未显示)指示 JNDI 使用的服务提供商。obctx.bind
调用将OceanBaseDataSource
实例绑定到逻辑 JNDI 名称。这意味着在调用obctx.bind
之后,随时可以使用逻辑名jdbc/sampleobdb
并根据OceanBaseDataSource
实例的obds
的属性打开数据库连接。逻辑名称jdbc/sampleobdb
在逻辑上绑定到此数据库。JNDI 命名空间的层次结构类似于文件系统。在此示例中,JNDI 名称在根命名上下文下指定子上下文
jdbc
,并在jdbc
子上下文内指定逻辑名sampleobdb
。Context 接口和
InitialContext
类包含于标准javax.naming
包中。 -
打开连接
要执行查找并打开逻辑上绑定到 JNDI 名称的数据库连接,请使用逻辑 JNDI 名称。为此,需要将查找结果(也可以是 Java
Object
)强制转换为OceanBaseDataSource
,然后使用相应的getConnection
方法打开连接。如例所示:
OceanBaseDataSource obdsconn = (OceanBaseDataSource)obctx.lookup("jdbc/sampleobdb"); Connection conn = obdsconn.getConnection();