---
title: "OceanBase Connector/J | OceanBase 文档中心"
description: OceanBase Connector/J 本文介绍了 OceanBase 数据库的 JDBC 驱动：oceanbase-client 和 MySQL 官方 JDBC 驱动：mysql-connector-Java 的使用说明和配置方法。 推荐使用 OceanBase 数据库的 JDBC 驱动：oceanbase-c…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# OceanBase Connector/J

更新时间：2026-01-29 11:21:29

本文介绍了 OceanBase 数据库的 JDBC 驱动：oceanbase-client 和 MySQL 官方 JDBC 驱动：mysql-connector-Java 的使用说明和配置方法。

推荐使用 OceanBase 数据库的 JDBC 驱动：oceanbase-client。

连接 MySQL 租户也可以使用 MySQL 官方 JDBC 驱动：mysql-connector-Java。

> **注意**
>
>  
>
> - oceanbase-client 完全兼容 MySQL JDBC 的使用方式，且可以自动识别 OceanBase 的运行模式是 MySQL 还是 Oracle，因为其在协议层兼容这两种模式。
>  - mysql-connector-Java 只支持 MySQL 运行模式。

## oceanbase-client 使用说明

连接串的前缀需要设置为 `jdbc:oceanbase` ，其他部分的使用方式与原生的 MySQL 使用方式保持一致。

代码示例如下所示：

```javascript
  String url = "jdbc:oceanbase://xxx.xxx.xxx.xxx:2883/SYS?useUnicode=true&characterEncoding=utf-8";              //IP地址:OBProxy端口号/数据库名
  String username = "SYS@test1#obtest";                                                                          //用户名@租户名#集群名称
  String password = "****";                                                                                      //密码
  Connection conn = null;
  try {
      Class.forName("com.oceanbase.jdbc.Driver");                                             //驱动类名
      conn = DriverManager.getConnection(url, username, password);
      PreparedStatement ps = conn.prepareStatement("select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;");
      ResultSet rs = ps.executeQuery();
      rs.next();
      System.out.println("sysdate is:" + rs.getString(1));
      rs.close();
      ps.close();
  } catch (Exception e) {
      e.printStackTrace();
  } finally {
      if (null != conn) {
          conn.close();
      }
  }

```

## mysql-connector-Java 使用说明

连接串的前缀需要设置为 jdbc:mysql，驱动类名为：com.mysql.jdbc.Driver。

代码示例如下所示：

```javascript
String url = "jdbc:mysql://xxx.xxx.xxx.xxx:2883/hr?useUnicode=true&characterEncoding=utf-8";                    //IP地址:OBProxy端口号/数据库名
String username = "root@test2#obtest";                                                                          //用户名@租户名#集群名称
String password = "****";                                                                                       //密码
Connection conn = null;
try {
    Class.forName("com.mysql.jdbc.Driver");                                                                       //驱动类名
    conn = DriverManager.getConnection(url, username, password);
    PreparedStatement ps = conn.prepareStatement("select date_format(now(),'%Y-%m-%d %H:%i:%s');");
    ResultSet rs = ps.executeQuery();
    rs.next();
    System.out.println("sysdate is:" + rs.getString(1));
    rs.close();
    ps.close();
} catch (Exception e) {
    e.printStackTrace();
} finally {
    if (null != conn) {
        conn.close();
    }
}

```

## JDBC 驱动实践

下述表格中展示了 JDBC 中几个必须要设置的重要参数。均可以设置到连接池的 ConnectionProperties 中，或者 JdbcURL 上：

| **参数** | **说明** | **推荐值** |
| --- | --- | --- |
| socketTimeout | 网络套接字操作的超时时间，单位为毫秒。默认值为 0，表示禁用超时。 | 需要根据业务实际情况设置。 |
| connectTimeout | 链接建立超时时间，如果不设置默认是 0，使用 OS 默认超时时间。 | 500 ms |

### 应用连接池配置

将应用和数据库连接进行业务操作，建议使用连接池。如果是 Java 程序，推荐使用 Druid 连接池。配置示例如下所示：

```javascript
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <!-- 基本属性 URL、user、password -->
    <property name="url" value="jdbc:mysql://ip:port/db?socketTimeout=30000&amp;connectTimeout=3000" />
    <property name="username" value="{user}" />
    <property name="password" value="{****}" />
    <!-- 配置初始化大小、最小、最大 -->
    <property name="maxActive" value="4" />                                                                       //initialSize/minIdle/maxActive视业务规模设置
    <property name="initialSize" value="2" />
    <property name="minIdle" value="2" />
    <!-- 获取连接等待超时的时间，单位是毫秒 -->
    <property name="maxWait" value="1000" />
    <!-- 间隔多久才进行一次检测，检测需要关闭的空闲连接，单位是毫秒 -->
    <property name="timeBetweenEvictionRunsMillis" value="60000" />
    <!-- 一个连接在池中最小空闲的时间，单位是毫秒-->
    <property name="minEvictableIdleTimeMillis" value="300000" />
    <!-- 检测连接是否可用的 SQL -->
    <property name="validationQuery" value="SELECT foo FROM bar" />                                               //找真实的、记录少的业务表用作查询探测语句
    <!-- 是否开启空闲连接检查 -->
    <property name="testWhileIdle" value="true" />
    <!-- 是否在获取连接前检查连接状态 -->
    <property name="testOnBorrow" value="false" />
    <!-- 是否在归还连接时检查连接状态 -->
    <property name="testOnReturn" value="false" />
</bean>

```

## 更多信息

有关 OceanBase Connector/J 的详细介绍和使用方法，请参见 [《 OceanBase Connector/J 》](https://www.oceanbase.com/docs/oceanbase-connector-j-cn)。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
