OceanBaseデータベースは、MySQL公式JDBCドライバーによる接続をサポートしています。本記事では、MySQL Connector/Jを使用してOceanBaseデータベースに接続し、操作する方法について説明します。
前提条件
コンピューターのJava環境がJava JDK 8以降であることを確認してください。
MySQL Connector/Jをインストールし、実行環境を設定します。
MySQL Connector/J 5.1.47バージョンの使用を推奨します。詳細なダウンロードおよびインストール方法については、Connector/JのダウンロードおよびConnector/Jのインストールを参照してください。
Javaアプリケーションの作成
ステップ1:データベース接続文字列の取得
OceanBaseデータベースのデプロイ担当者または管理者から、該当するデータベース接続文字列を取得します。例:
obclient -h100.88.xx.xx -uroot@test -p****** -P2883 -Doceanbase
データベース接続文字列には、データベースへのアクセスに必要なパラメータ情報が含まれています。アプリケーションを作成する前に、データベース接続文字列を使用してデータベースへのログインを検証し、接続文字列のパラメータ情報が正しいことを確認できます。
パラメータ説明:
- -h:OceanBaseデータベースの接続IPアドレス。場合によってはODPのアドレスです。
- -u:テナントの接続ユーザー名。形式はユーザー@テナント#クラスタ名です。クラスタのデフォルトテナントは'sys'、テナントのデフォルト管理者ユーザーは'root'です。データベースに直接接続する場合はクラスタ名を記入せず、ODPを介して接続する場合は記入する必要があります。
- -p:ユーザーパスワード。
- -P:OceanBaseデータベースの接続ポート番号。ODPのリスニングポートでもあります。
- -D:アクセスするデータベース名。
ステップ2:アプリケーションの作成
以下では、Linux環境でJavaドライバーConnector/J 5.1.47を使用してデータベースに接続する例を説明します。
MySQL Connector/J 5.1.47ドライバーを正しくインストールし、環境を設定した後、以下のTest.javaファイルのサンプルコードを使用してデータベースへの接続と操作を行えます。
注意
MySQL Connector/J 8.x系を使用する場合、Class.forName("com.mysql.jdbc.Driver")内のcom.mysql.jdbc.Driverはcom.mysql.cj.jdbc.Driverに置き換えてください。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
try{
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:2881/test?user=r***&password=");
System.out.println(connection.getAutoCommit());
Statement sm = connection.createStatement();
//新規テーブルt_meta_formの作成
sm.executeUpdate("CREATE TABLE t_meta_form (name varchar(36) , id int)");
//データの挿入
sm.executeUpdate("insert into t_meta_form values ('an','1')");
//データのクエリと結果の出力
ResultSet rs = sm.executeQuery("select * from t_meta_form");
while (rs.next()) {
String name = rs.getString("name");
String id = rs.getString("id");
System.out.println(name + ','+ id);
}
//テーブルの削除
sm.executeUpdate("drop table t_meta_form");
}catch(SQLException se){
System.out.println("error!");
se.printStackTrace() ;
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
}
コード内のデータベース接続パラメータを修正します。以下のフィールドと連結方法を参考に、対応する値はステップ1で取得したデータベース接続文字列から取得します。
connection = DriverManager.getConnection("jdbc:mysql://{host}:{port}/{dbname}?user={username}&password={******}")
//例
jdbc:mysql://100.88.xx.xx:2881/test?user=r***&password=******`
host:
-hパラメータから取得します。OceanBaseデータベースの接続アドレスで、場合によってはODPのアドレスです。port:
-Pパラメータから取得します。OceanBaseデータベースの接続ポートで、ODPのリスニングポートでもあります。dbname:
-Dパラメータから取得します。アクセスするデータベース名です。username:
-uパラメータから取得します。テナントの接続ユーザー名で、形式はユーザー@テナント#クラスタ名です。クラスタのデフォルトテナントは'sys'、テナントのデフォルト管理者ユーザーは'root'です。データベースに直接接続する場合はクラスタ名を記入せず、ODP経由で接続する場合は記入が必要です。password:
-pパラメータから取得します。ユーザーパスワードです。
ステップ3:アプリケーションを実行する
コードの編集が完了したら、以下のコマンドでコンパイルします:
# 一時的な環境変数を設定します。mysql-connector-java-5.1.47.jarの実際のインストールパスに合わせて入力してください。
export CLASSPATH=/usr/share/java/mysql-connector-java-5.1.47.jar:$CLASSPATH
# コンパイル
javac Test.java
コンパイルが完了したら、以下のコマンドで Test を実行します:
java Test
# 以下の結果が出力されれば、データベース接続が成功し、サンプルステートメントが正しく実行されたことを示します。
true
an,1
詳細を見る
- Java サンプルアプリケーションの作成については、OceanBase データベースのオープンソースコミュニティにも関連する完全なサンプルがあります。詳細については、Java サンプルアプリケーションを参照してください。
- Connector/J で OceanBase データベースに接続する詳細なサンプルについては、MySQL Connector/J で OceanBase データベースに接続するサンプルプログラムを参照してください。