基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
使用 MySQL Connector/J 连接 OB Cloud 云数据库
更新时间:2026-06-16 13:29:49
本文介绍如何通过 MySQL Connector/J 驱动连接和使用 OB Cloud 云数据库。
前提条件
- 您已注册 OB Cloud 云数据库账号,并创建集群实例和 OB Cloud MySQL 模式租户。详情请参见创建集群实例和创建租户。
- 您已下载并安装 IntelliJ IDEA。
- 您已下载 JDK 1.8.0。
- 您已下载并在 IntelliJ IDEA 中配置 Maven。
- 您已下载本文所使用的工程示例代码。
说明
基于使用 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 之间的版本。
安装后检查
检查 JDK 是否安装成功。
java -version检查 Maven 是否安装成功。
mvn -version(可选)检查 IntelliJ IDEA 中 Maven 配置是否正确。
说明
本文仅提供简单的示例工程供您参考。如果您需要尝试开发更为复杂的示例,可以下载适合您开发环境版本的 Maven,并通过如下路径,在 IntelliJ IDEA 中完成配置。
打开 IntelliJ IDEA,在菜单栏,选择 IntelliJ IDEA > Preferences > Build, Execution, Development > Build Tools > Maven。
在 Maven home path 配置 Maven 安装包所在路径。

操作步骤
步骤一:获取 OB Cloud 云数据库连接串
登录 OB Cloud 云数据库控制台。在集群列表页面,展开目标集群的信息,在目标租户下,单击 连接。

在弹出框中选择 使用公共网络。
在 使用公网 IP 连接数据库 页面完成如下设置,生成连接串:
配置项 说明 添加 IP 地址 单击添加,将您的出口 IP 添加至白名单。 下载证书 (可选)单击下载证书,下载 CA 证书并完成认证。 连接租户 数据库 单击下拉框后,单击+ 创建数据库,根据提示完成数据库创建。 账号 单击下拉框后,单击+ 创建账号,根据提示完成账号创建。 连接方式 选择 MySQL CLI 作为连接方式。 注意
创建账号后,请您妥善记录创建账号时生成的密码。
步骤二:运行示例工程
解压已下载的示例工程,并在 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之间,则上述两种依赖均可使用。
- 将
根据步骤一中获取的连接串信息,在工程代码中修改如下数据库连接参数。
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参数,账号密码。
//示例 Connection connection = DriverManager.getConnection("jdbc:mysql://t5******.aws-ap-southeast-1.oceanbase.cloud:3306/integrations-test?user=test&password=******");注意
若使用 MySQL Connector/J 8.x,账号密码中需避免包含
#,否则会导致示例工程运行报错。- host:取自连接串中
在 IntelliJ IDEA 中运行示例工程。若返回如下结果,说明数据库连接成功,示例工程执行正确。

项目代码介绍
本文所使用的示例工程 JDBCDemo 其目录结构如下所示:
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 文件的代码主要包括以下几个部分:
文件声明语句。
声明本文件是一个 XML 文件,使用的 XML 版本是
1.0,字符编码方式是UTF-8。代码如下:
<?xml version="1.0" encoding="UTF-8"?>配置 POM 的命名空间和 POM 模型版本。
- 通过
xmlns指定 POM 的命名空间为http://maven.apache.org/POM/4.0.0。 - 通过
xmlns:xsi指定 XML 命名空间http://www.w3.org/2001/XMLSchema-instance。 - 通过
xsi:schemaLocation指定 POM 的命名空间为http://maven.apache.org/POM/4.0.0和 POM 的 XSD 文件的位置为http://maven.apache.org/xsd/maven-4.0.0.xsd。 - 通过
<modelVersion>元素指定了该 POM 文件使用的 POM 模型版本为4.0.0。
代码如下:
<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>- 通过
配置基本信息。
- 通过
<groupId>指定项目所属组织为com.example。 - 通过
<artifactId>指定项目的名称为JDBCDemo。 - 通过
<version>项目的版本号为1.0-SNAPSHOT。
代码如下:
<groupId>org.example</groupId> <artifactId>JDBCDemo</artifactId> <version>1.0-SNAPSHOT</version>- 通过
配置项目所依赖组件。
添加
mysql-connector-java依赖库,用于与数据库进行交互:- 通过
<groupId>指定依赖项所属的组织为mysql。 - 通过
<artifactId>指定依赖项的名称为mysql-connector-java。 - 通过
<version>指定依赖项的版本号为5.1.40。
代码如下:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency>- 通过
说明
本部分代码定义项目所依赖组件是 MySQL Connector/J 的 V5.1.40 版本,如果需要了解其他版本的信息,请参见 MySQL Connector/J。
JDBCTest.java 代码介绍
JDBCTest.java 文件是示例程序的一部分,代码演示了如何使用 MySQL Connector/J 执行数据库操作。它首先配置了数据库连接信息,然后创建了一个 JDBCTest 对象来执行数据库操作。代码中还包括了创建表、插入数据和查询数据的示例。
本文 JDBCTest.java 文件的代码主要包含以下几个部分:
导入 Java 程序中使用 JDBC API 需要的 Java 类。
- Connection 用于建立与数据库之间的连接。
- DriverManager 负责管理一组 JDBC 驱动程序。
- ResultSet 用于处理 SQL 查询返回的数据。
- Statement 用于执行静态 SQL 语句并返回结果。
代码如下:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;创建一个
JDBCTest类,并定义了main方法。- 定义一个名为
JDBCTest的公共类,作为程序的入口点。类名需要与文件名保持一致。 - 定义一个公共静态方法
main,作为程序的起始执行点。 - 其他数据库操作。
代码如下:
public class JDBCTest { public static void main(String[] args) { // 数据库连接信息 // 创建数据源 // 创建表 // 插入数据 // 更新数据 // 删除数据 // 查询数据 // 删除表 } }- 定义一个名为
定义数据库连接信息。
Class.forName()来加载并注册 MySQL JDBC 驱动程序。DriverManager.getConnection()方法定义用于连接数据库的 URL、用户名和密码。您需要将{host}、{port}、{dbname}、{username}和password替换为实际的数据库连接信息。
代码如下:
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={******}");创建和执行 SQL 声明。
Statement stmt = connection.createStatement(); stmt.execute("...");创建表。
代码如下:
// 用 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");插入数据。
代码如下:
// 在 "test" 表中插入两行数据 stmt.execute("insert into test values (1, 'aaa'),(2, 'bbb')"); // 打印插入数据成功的消息 System.out.println("insert data successfully");查询数据。
代码如下:
// 打印查询数据的消息 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"));更新数据。
代码如下:
// 更新 "test" 表中 id 为 1 的记录的 "name" 字段为 'bbb' stmt.execute("update test set name = 'bbb' where id = 1"); // 打印更新数据成功的消息 System.out.println("update data successfully");删除数据。
代码如下:
// 删除 "test" 表 stmt.execute("drop table test"); // 关闭结果集、语句和数据库连接 rs.close(); stmt.close(); connection.close();异常处理。
执行以上数据库操作的过程中发生任何异常,这些异常将被捕捉,并打印错误信息以及堆栈跟踪详情。
代码如下:
} catch (Exception e) { System.out.println("error!"); e.printStackTrace(); }
完整代码展示
<?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>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
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 示例应用程序。
点击下载 MySQL Connector/J 示例工程