このトピックでは、MySQL Connector/J ドライバーを使用して OceanBase Cloud に接続する方法について説明します。
前提条件
- OceanBase Cloud アカウントを登録し、インスタンスを作成していること。詳細は、インスタンスの作成 を参照してください。
- IntelliJ IDEA をダウンロードし、インストールしていること。
- JDK 1.8.0 をダウンロードしていること。
- Maven をダウンロードし、IntelliJ IDEA で設定していること。
- このドキュメントで使用するサンプルプロジェクトコードをダウンロードしていること。
インストール後の確認
JDK が正しくインストールされているか確認します。
java -versionMaven が正しくインストールされているか確認します。
mvn -version(任意)IntelliJ IDEA の Maven 設定が正しいか確認します。
注
このトピックでは、参考用として比較的シンプルなデモのみを提供します。より複雑な例を開発する場合は、開発環境に適した Maven バージョンをダウンロードし、次のパスから IntelliJ IDEA に設定できます。
IntelliJ IDEA を開き、メニューバーで IntelliJ IDEA > Preferences > Build, Execution, Deployment > Build Tools > Maven を選択します。
Maven home path で、Maven インストールパッケージのパスを指定します。

手順
ステップ 1:OceanBase Cloud の接続文字列を取得する
OceanBase Cloud コンソール にログインします。インスタンスページで対象インスタンスを展開し、そのインスタンスの 作成 をクリックします。

ポップアップウィンドウで パブリック IP で接続 をクリックします。
パブリック IP で接続 ウィンドウで次の設定を完了し、接続文字列を生成します。
1. IP アドレスを許可リストに追加 で 追加 をクリックし、接続に使用する送信元 IP アドレスを許可リストに追加します。
(任意)2. インスタンスへ安全に接続するため CA 証明書をダウンロード で CA 証明書をダウンロードし、検証を完了します。
3. インスタンスに接続 で データベース と アカウント のドロップダウンリストをクリックし、接続用のデータベースとアカウントを作成します。接続方法には MySQL CLI を選択します。
注意
アカウント作成後は、パスワードを安全な場所に保管してください。

ステップ 2:サンプルプロジェクトを実行する
ダウンロードしたサンプルプロジェクトを解凍し、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 の間の場合は、どちらの依存関係も使用できます。
ステップ 1:OceanBase Cloud の接続文字列を取得する で取得した接続文字列情報に基づいて、プロジェクトコード内のデータベース接続パラメーターを変更します。
Connection connection = DriverManager.getConnection("jdbc:mysql://{host}:{port}/{dbname}?user={username}&password={******}");- host:接続文字列の
-hパラメーターから取得します。OceanBase Cloud データベースのホスト名です。 - port:接続文字列の
-Pパラメーターから取得します。OceanBase Cloud データベースの接続ポートです。 - dbname:接続文字列の
-Dパラメーターから取得します。アクセスするデータベース名です。 - username:接続文字列の
-uパラメーターから取得します。アカウント名です。 - password:接続文字列の
-pパラメーターから取得します。アカウントのパスワードです。
//Example 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> <!-- Other configurations --> </project>基本情報の設定。
<groupId>により、プロジェクトが組織org.exampleに属することを指定します。<artifactId>により、プロジェクト名をJDBCDemoと指定します。<version>により、プロジェクトのバージョン番号を1.0-SNAPSHOTと指定します。
<groupId>org.example</groupId> <artifactId>JDBCDemo</artifactId> <version>1.0-SNAPSHOT</version>プロジェクト依存関係の設定。
- データベースとやり取りするための
mysql-connector-java依存ライブラリを追加します。- 依存関係のグループ ID を
mysqlと指定します。 - 依存関係のアーティファクト ID を
mysql-connector-javaと指定します。 - 依存関係のバージョン番号を
5.1.40と指定します。
- 依存関係のグループ ID を
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency>注
このセクションのコードは、プロジェクトが MySQL Connector/J バージョン 5.1.40 に依存することを指定しています。他のバージョンについては、[MySQL Connector/J Archives](https://downloads.mysql.com/archives/c-j/) を参照してください。
- データベースとやり取りするための
JDBCTest.java の説明
JDBCTest.java ファイルはサンプルプロジェクトの一部で、MySQL Connector/J を使用してデータベース操作を行う方法を示します。最初にデータベース接続情報を設定し、次に JDBCTest オブジェクトを作成してデータベース操作を実行します。コードには、テーブル作成、データ挿入、データ更新、データ削除、データ照会の例が含まれます。
JDBCTest.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メソッドを定義します。public class JDBCTest { public static void main(String[] args) { // Database connection information // Create data source // Create table // Insert data // Update data // Delete data // Query data // Delete table } }データベース接続情報を定義します。
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("...");テーブルを作成します。
// Drop the table named "test" if it exists stmt.execute("drop table if exists test"); // Create a new table named "test" with two fields: integer "id" and character "name" stmt.execute("create table test (id int, name varchar(25))"); // Print a message indicating that the table creation is successful System.out.println("create table successfully");データを挿入します。
// Insert two rows of data into the "test" table stmt.execute("insert into test values (1, 'aaa'),(2, 'bbb')"); // Print a message indicating that the data insertion is successful System.out.println("insert data successfully");データを照会します。
// Print a message indicating querying data System.out.println("query data : "); // Execute the query SQL statement to get all the data in the "test" table ResultSet rs = stmt.executeQuery("select * from test"); // Iterate through the result set while (rs.next()) { // Print the "id" and "name" fields of each data System.out.println(rs.getString("id") + "\t" + rs.getString("name"));データを更新します。
// Update the "name" field of the record with id 1 in the "test" table to 'bbb' stmt.execute("update test set name = 'bbb' where id = 1"); // Print a message indicating that the data update is successful System.out.println("update data successfully");データを削除します。
// Delete the "test" table stmt.execute("drop table test"); // Close the result set, statement, and database connection 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>
</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();
}
}
}
関連情報
OceanBase Database オープンソースコミュニティにも、Java サンプルアプリケーションの完全な例があります。詳細は、Java Sample Application を参照してください。
MySQL Connector/J サンプルプロジェクトをダウンロード