云数据库OceanBase入门教程 OceanBase 创建数据源实例并连接

2024-02-26 开发教程 云数据库OceanBase入门教程 匿名 2

本节主要介绍如何创建最基本的使用数据源连接到数据库的示例,并且需要使用供应商指定的的硬编码属性设置。

创建一个 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 并连接的步骤如下:

  1. 初始化数据源属性

    创建一个 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");
  2. 注册数据源

    初始化 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包中。

  3. 打开连接

    要执行查找并打开逻辑上绑定到 JNDI 名称的数据库连接,请使用逻辑 JNDI 名称。为此,需要将查找结果(也可以是 Java Object)强制转换为 OceanBaseDataSource,然后使用相应的 getConnection方法打开连接。

    如例所示:

    OceanBaseDataSource obdsconn = (OceanBaseDataSource)obctx.lookup("jdbc/sampleobdb");
    Connection conn = obdsconn.getConnection();