---
title: "使用 MySQL Connector/J 连接 OB Cloud 云数据库 - OB Cloud 云数据库 master | OceanBase 文档中心"
description: 使用 MySQL Connector/J 连接 OB Cloud 云数据库 本文介绍如何通过 MySQL Connector/J 驱动连接和使用 OB Cloud 云数据库。 前提条件 您已注册 OB Cloud 云数据库账号，并创建集群实例和 OB Cloud MySQL 模式租户。详情请参见 创建集群实例 和 创…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*qbZXRo_94ZEAAAAAAAAAAAAADiGDAQ/original) OB Cloud 云数据库

# 使用 MySQL Connector/J 连接 OB Cloud 云数据库

更新时间：2026-06-16 13:29:49

本文介绍如何通过 MySQL Connector/J 驱动连接和使用 OB Cloud 云数据库。

## 前提条件

- 您已注册 OB Cloud 云数据库账号，并创建集群实例和 OB Cloud MySQL 模式租户。详情请参见[创建集群实例](https://www.oceanbase.com/docs/common-oceanbase-cloud-10000000001780086)和[创建租户](https://www.oceanbase.com/docs/common-oceanbase-cloud-10000000001780107)。
 - 您已下载并安装 IntelliJ IDEA。
 - 您已下载 JDK 1.8.0。
 - 您已下载并在 IntelliJ IDEA 中配置 [Maven](https://maven.apache.org/download.cgi)。
 - 您已下载本文所使用的工程示例代码。 [![](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/observer-enterprise/V4.2.0/3.develop/demo22x22.png) 点击下载 MySQL Connector/J 示例工程](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/cloud/OBCloud-240420/Integrations/Connector-J/JDBCDemo.zip)

#### 说明

基于使用 OceanBase 的体验，我们推荐使用以下版本的 MySQL Connector/J：

- 对于 MySQL Connector/J 5.x 版本，推荐使用 5.1.40 ~ 5.1.49 之间的版本。
 - 对于 MySQL Connector/J 8.x 版本，推荐使用 8.0.7 ~ 8.0.25 以及 8.2.0 ~ 8.4.0 之间的版本。

### 安装后检查

1. 检查 JDK 是否安装成功。

   ```shell
   java -version

   ```
 2. 检查 Maven 是否安装成功。

   ```shell
   mvn -version

   ```
 3. (可选)检查 IntelliJ IDEA 中 Maven 配置是否正确。

   #### 说明

   本文仅提供简单的示例工程供您参考。如果您需要尝试开发更为复杂的示例，可以下载适合您开发环境版本的 Maven，并通过如下路径，在 IntelliJ IDEA 中完成配置。

      1. 打开 IntelliJ IDEA，在菜单栏，选择 **IntelliJ IDEA** > **Preferences** > **Build, Execution, Development** > **Build Tools** > **Maven**。
      2. 在 **Maven home path** 配置 **Maven** 安装包所在路径。

         ![maven](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/observer-enterprise/V4.3.0/develop/sample-program/maven-settings.png)

## 操作步骤

### 步骤一：获取 OB Cloud 云数据库连接串

1. 登录 [OB Cloud 云数据库控制台](https://console-cn.oceanbase.com/)。在集群列表页面，展开目标集群的信息，在目标租户下，单击 **连接**。

    ![connect-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/cloud/OBCloud-240420/Integrations/Superset/connect-zh.png)
 2. 在弹出框中选择 **使用公共网络**。
 3. 在 **使用公网 IP 连接数据库** 页面完成如下设置，生成连接串：

    ![public-ip-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/cloud/OBCloud-240420/Integrations/Superset/public-ip-zh.png)

   | 配置项 | 说明 |
   | 添加 IP 地址 | 单击**添加**，将您的出口 IP 添加至白名单。 |
   | 下载证书 | （可选）单击**下载证书**，下载 CA 证书并完成认证。 |
   | 连接租户 | 数据库 | 单击下拉框后，单击**+ 创建数据库**，根据提示完成数据库创建。 |
   | 账号 | 单击下拉框后，单击**+ 创建账号**，根据提示完成账号创建。 |
   | 连接方式 | 选择 **MySQL CLI** 作为连接方式。 |

   #### 注意

   创建账号后，请您妥善记录创建账号时生成的密码。

### 步骤二：运行示例工程

1. 解压已下载的示例工程，并在 IntelliJ IDEA 中打开。

   #### 说明

   本示例工程中默认使用 MySQL Connector/J 5.x，若需使用 MySQL Connector/J 8.x，您需对示例工程做如下修改：

      - 将`JDBCtest.java`文件中的`Class.forName("com.mysql.jdbc.Driver");`替换为`Class.forName("com.mysql.cj.jdbc.Driver");`。
      - 若 MySQL Connector/J 8.x ≤ 8.0.31，在`pom.xml`文件中，将依赖的`version`更新为 8.0.27。若 MySQL Connector/J 8.x ≥ 8.1，将`groupId`更新为`com.mysql`，`artifactId`更新为`mysql-connector-j`，`version`更新为 8.0.33。若 MySQL Connector/J 8.x 在 8.0.31 和 8.1之间，则上述两种依赖均可使用。
 2. 根据步骤一中获取的连接串信息，在工程代码中修改如下数据库连接参数。

   ```java
   Connection connection = DriverManager.getConnection("jdbc:mysql://{host}:{port}/{dbname}?user={username}&password={******}");

   ```

      - **host**：取自连接串中 `-h` 参数，OB Cloud 云数据库连接地址。
      - **port**：取自连接串中 `-P` 参数，OB Cloud 云数据库连接端口。
      - **dbname**：取自连接串中 `-D` 参数，需要访问的数据库名称。
      - **username**：取自连接串中 `-u` 参数，账号名称。
      - **password**：取自连接串中 `-p` 参数，账号密码。

   ```java
   //示例
   Connection connection = DriverManager.getConnection("jdbc:mysql://t5******.aws-ap-southeast-1.oceanbase.cloud:3306/integrations-test?user=test&password=******");

   ```

   #### 注意

   若使用 MySQL Connector/J 8.x，账号密码中需避免包含 `#`，否则会导致示例工程运行报错。
 3. 在 IntelliJ IDEA 中运行示例工程。若返回如下结果，说明数据库连接成功，示例工程执行正确。

    ![connect-j-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/cloud/OBCloud-240420/Integrations/Connector-J/connector-j.png)

## 项目代码介绍

本文所使用的示例工程 `JDBCDemo` 其目录结构如下所示：

```shell
JDBCDemo
├── src
│   └── main
│       └── java
│           └── JDBCTest.java
└── pom.xml

```

**文件说明：**

- `src`：源代码根目录。
 - `main`：主代码目录，包含应用程序的主要逻辑。
 - `java`：Java 源代码目录。
 - `JDBCTest.java`：主类，包含创建表和插入数据等逻辑。
 - `pom.xml`：Maven 项目的配置文件，用于管理项目的依赖和构建设置。

### pom.xml 代码介绍

`pom.xml` 文件是 Maven 项目的配置文件，定义了项目的依赖项、插件和构建规则等信息。Maven 是一个 Java 项目管理工具，可以自动下载依赖项、编译和打包项目等操作。

本文 `pom.xml` 文件的代码主要包括以下几个部分：

1. 文件声明语句。

   声明本文件是一个 XML 文件，使用的 XML 版本是 `1.0`，字符编码方式是 `UTF-8`。

   **代码如下：**

   ```xml
   <?xml version="1.0" encoding="UTF-8"?>

   ```
 2. 配置 POM 的命名空间和 POM 模型版本。

      1. 通过 `xmlns` 指定 POM 的命名空间为 `http://maven.apache.org/POM/4.0.0`。
      2. 通过 `xmlns:xsi` 指定 XML 命名空间 `http://www.w3.org/2001/XMLSchema-instance`。
      3. 通过 `xsi:schemaLocation` 指定 POM 的命名空间为 `http://maven.apache.org/POM/4.0.0` 和 POM 的 XSD 文件的位置为 `http://maven.apache.org/xsd/maven-4.0.0.xsd`。
      4. 通过 `<modelVersion>` 元素指定了该 POM 文件使用的 POM 模型版本为 `4.0.0`。

   **代码如下：**

   ```xml
   <project xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>

    <!-- 其他配置 -->

   </project>

   ```
 3. 配置基本信息。

      1. 通过 `<groupId>` 指定项目所属组织为 `com.example`。
      2. 通过 `<artifactId>` 指定项目的名称为 `JDBCDemo`。
      3. 通过 `<version>` 项目的版本号为 `1.0-SNAPSHOT`。

   **代码如下：**

   ```xml
       <groupId>org.example</groupId>
       <artifactId>JDBCDemo</artifactId>
       <version>1.0-SNAPSHOT</version>

   ```
 4. 配置项目所依赖组件。

      - 添加 `mysql-connector-java` 依赖库，用于与数据库进行交互：

            - 通过 `<groupId>` 指定依赖项所属的组织为 `mysql`。
            - 通过 `<artifactId>` 指定依赖项的名称为 `mysql-connector-java`。
            - 通过 `<version>` 指定依赖项的版本号为 `5.1.40`。

       **代码如下：**

       ```xml
           <dependency>
               <groupId>mysql</groupId>
               <artifactId>mysql-connector-java</artifactId>
               <version>5.1.40</version>
           </dependency>

       ```  

   #### 说明

   本部分代码定义项目所依赖组件是 MySQL Connector/J 的 V5.1.40 版本，如果需要了解其他版本的信息，请参见 [MySQL Connector/J](https://downloads.mysql.com/archives/c-j/)。

### JDBCTest.java 代码介绍

`JDBCTest.java` 文件是示例程序的一部分，代码演示了如何使用 MySQL Connector/J 执行数据库操作。它首先配置了数据库连接信息，然后创建了一个 `JDBCTest` 对象来执行数据库操作。代码中还包括了创建表、插入数据和查询数据的示例。

本文 `JDBCTest.java` 文件的代码主要包含以下几个部分：

1. 导入 Java 程序中使用 JDBC API 需要的 Java 类。

      1. Connection 用于建立与数据库之间的连接。
      2. DriverManager 负责管理一组 JDBC 驱动程序。
      3. ResultSet 用于处理 SQL 查询返回的数据。
      4. Statement 用于执行静态 SQL 语句并返回结果。

   **代码如下：**

   ```java
   import java.sql.Connection;
   import java.sql.DriverManager;
   import java.sql.ResultSet;
   import java.sql.Statement;

   ```
 2. 创建一个 `JDBCTest` 类，并定义了 `main` 方法。

      1. 定义一个名为 `JDBCTest` 的公共类，作为程序的入口点。类名需要与文件名保持一致。
      2. 定义一个公共静态方法 `main`，作为程序的起始执行点。
      3. 其他数据库操作。

   **代码如下：**

   ```java
   public class JDBCTest {
       public static void main(String[] args) {
           // 数据库连接信息
           // 创建数据源
           // 创建表
           // 插入数据
           // 更新数据
           // 删除数据
           // 查询数据
           // 删除表
       }
   }

   ```
 3. 定义数据库连接信息。

      1. `Class.forName()` 来加载并注册 MySQL JDBC 驱动程序。
      2. `DriverManager.getConnection()` 方法定义用于连接数据库的 URL、用户名和密码。您需要将 `{host}`、`{port}`、`{dbname}`、`{username}` 和 `password` 替换为实际的数据库连接信息。

   **代码如下：**

   ```java
       Class.forName("com.mysql.jdbc.Driver"); //mysql-jdbc 5
       //Class.forName("com.mysql.cj.jdbc.Driver"); //mysql-jdbc 8
       Connection connection = DriverManager.getConnection("jdbc:mysql://{host}:{port}/{dbname}?user={username}&password={******}");

   ```
 4. 创建和执行 SQL 声明。

   ```java
       Statement stmt = connection.createStatement();
       stmt.execute("...");

   ```
 5. 创建表。

   **代码如下：**

   ```java
       // 用 SQL 语句删除如果存在名为 "test" 的表
       stmt.execute("drop table if exists test");
       // 创建一个新的名为 "test" 的表，包含两个字段：整型的 "id" 和字符型的 "name"
       stmt.execute("create table test (id int, name varchar(25))");
               // 打印创建表成功的消息
       System.out.println("create table successfully");

   ```
 6. 插入数据。

   **代码如下：**

   ```java
       // 在 "test" 表中插入两行数据
       stmt.execute("insert into test values (1, 'aaa'),(2, 'bbb')");
       // 打印插入数据成功的消息
       System.out.println("insert data successfully");

   ```
 7. 查询数据。

   **代码如下：**

   ```java
       // 打印查询数据的消息
       System.out.println("query data : ");
       // 执行查询 SQL 语句，获取 "test" 表中的所有数据
       ResultSet rs = stmt.executeQuery("select * from test");
       // 遍历结果集
       while (rs.next()) {
       // 打印每条数据的 "id" 和 "name" 字段
       System.out.println(rs.getString("id") + "\t" + rs.getString("name"));

   ```
 8. 更新数据。

   **代码如下：**

   ```java
       // 更新 "test" 表中 id 为 1 的记录的 "name" 字段为 'bbb'
       stmt.execute("update test set name = 'bbb' where id = 1");
       // 打印更新数据成功的消息
       System.out.println("update data successfully");

   ```
 9. 删除数据。

   **代码如下：**

   ```java
       // 删除 "test" 表
       stmt.execute("drop table test");
       // 关闭结果集、语句和数据库连接
       rs.close();
       stmt.close();
       connection.close();

   ```
 10. 异常处理。

    执行以上数据库操作的过程中发生任何异常，这些异常将被捕捉，并打印错误信息以及堆栈跟踪详情。

    **代码如下：**

    ```java
        } catch (Exception e) {
        System.out.println("error!");
        e.printStackTrace();
        }

    ```

### 完整代码展示

    pom.xml   JDBCTest.java

```java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>JDBCDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>
        <!--        <dependency>-->
        <!--            <groupId>com.mysql</groupId>-->
        <!--            <artifactId>mysql-connector-j</artifactId>-->
        <!--            <version>8.0.33</version>-->
        <!--        </dependency>-->
    </dependencies>
</project>

```

public class JDBCTest {

    public static void main(String[] args) {
        try {
            //load driver
            Class.forName("com.mysql.jdbc.Driver"); //mysql-jdbc 5
//            Class.forName("com.mysql.cj.jdbc.Driver"); //mysql-jdbc 8

            //create connection
            Connection connection = DriverManager.getConnection("jdbc:mysql://{host}:{port}/{dbname}?user={username}&password={******}");
            System.out.println("jdbc version : " + connection.getMetaData().getDriverVersion());
            Statement stmt = connection.createStatement();

            //create table
            stmt.execute("drop table if exists test");
            stmt.execute("create table test (id int, name varchar(25))");
            System.out.println("create table successfully");

            //insert data
            stmt.execute("insert into test values (1, 'aaa'),(2, 'bbb')");
            System.out.println("insert data successfully");

            //query data
            System.out.println("query data : ");
            ResultSet rs = stmt.executeQuery("select * from test");
            while (rs.next()) {
                System.out.println(rs.getString("id") + "\t" + rs.getString("name"));
            }

            //update data
            stmt.execute("update test set name = 'bbb' where id = 1");
            System.out.println("update data successfully");

            //query data after update
            System.out.println("query data after update : ");
            rs = stmt.executeQuery("select * from test");
            while (rs.next()) {
                System.out.println(rs.getString("id") + "\t" + rs.getString("name"));
            }

            //delete data
            stmt.execute("delete from test where id = 1");
            System.out.println("delete data successfully");

            //query data after delete
            System.out.println("query data after delete : ");
            rs = stmt.executeQuery("select * from test");
            while (rs.next()) {
                System.out.println(rs.getString("id") + "\t" + rs.getString("name"));
            }

            //drop table
            stmt.execute("drop table test");
            //close
            rs.close();
            stmt.close();
            connection.close();
        } catch (Exception e) {
            System.out.println("error!");
            e.printStackTrace();
        }
    }
}

```

## 更多信息

创建 Java 示例应用程序在 OceanBase 数据库开源社区中也有相关的完整示例。详情请参见 [Java 示例应用程序](https://github.com/oceanbase/ob-example/tree/master/examples/driver/java-mysql-connector-java)。

 上一篇 下一篇 ![有帮助](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) 咨询热线
