本記事では、JavaアプリケーションからOceanBase Connector/Jドライバーを使用してOceanBaseデータベースに接続し、使用する方法について説明します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity Editionは、MySQLモードのみご利用いただけます。
前提条件
基本的なデータベース開発環境をセットアップしておいてください。
コンピュータの Java 環境が Java JDK 8 であることを確認します。お使いのコンピュータに、Java開発キット(JDK)のバージョン8がインストールされていることを確認してください。
OceanBase Connector/Jドライバーのインストールパッケージを入手してください。OceanBase公式サイトのメニューからリソース > ダウンロードセンター > エンタープライズ版 -> ドライバーとミドルウェアの順に進みます。OceanBase JDBC ドライバーの項目でご希望のバージョンをクリックし、必要情報を入力するとパッケージをダウンロードできます。
Javaアプリケーションの作成
ステップ1:データベース接続文字列の取得
OceanBaseデータベースのデプロイ担当者または管理者から、該当するデータベース接続文字列を取得します。例:
obclient -h100.88.xx.xx -usys@oracle -p****** -P2881
データベース接続文字列には、データベースへのアクセスに必要なパラメータ情報が含まれています。アプリケーションを作成する前に、データベース接続文字列を用いてデータベースへのログインを検証し、接続文字列のパラメータが正確であるか確認することができます。
パラメータの説明:
-h:OceanBaseデータベースへの接続IPアドレス。ODP (OceanBase Database Proxy)のアドレスである場合もあります。
-u:テナントの接続ユーザー名。書式はユーザー@テナント#クラスタ名となります。Oracleモードにおける管理者ユーザー名は、デフォルトで
sysです。データベースに直接接続する場合、クラスタ名は不要です。ODP を介して接続する場合は、クラスタ名を入力する必要があります。-p:ユーザーのパスワードです。
-P:OceanBaseデータベースの接続ポート番号であり、ODPのリスニングポートでもあります。
ステップ2:OceanBase Connector/Jドライバーのインストール
OceanBase Connector/JのJARパッケージを解凍し、ローカルの/usr/share/javaディレクトリに配置して、一時的な環境変数を設定します。
mv ./oceanbase-client-{version}.jar /usr/share/java
export CLASSPATH=/usr/share/java/oceanbase-client-{version}.jar:$CLASSPATH
説明
ダウンロードしたファイルの実際のバージョンに応じて、適切な操作を行ってください。
ステップ3:アプリケーションの作成
JavaのサンプルファイルとしてTest.javaを作成します。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test {
public static void main(String[] args) {
try {
Class.forName("com.oceanbase.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:oceanbase://172.30.xx.xx:2881/?pool=false&user=s**@oracle&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 ex) {
System.out.println("error!");
ex.printStackTrace() ;
}catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
コード内のデータベース接続パラメータ、ご自身の環境に合わせて修正してください。以下の項目を参考に、「ステップ1」で取得したデータベース接続文字列の対応する値を設定します。
url:
-hと-Pの値から構成します。書式はjdbc:oceanbase://IP:port/?pool=falseとなります。これは、OceanBaseデータベースの接続IPアドレス(通常はODPアドレス)と、アクセスに使用するポート番号です。user:
-uの値を使用します。テナントの接続ユーザー名で、書式はユーザー@テナント#クラスタ名となります。Oracleモードの管理者ユーザー名はデフォルトでsysです。データベースに直接接続する場合は、クラスタ名の部分は不要ですが、ODP を介して接続する場合は、ODP経由で接続する場合は指定する必要があります。password:
-pの値を使用します。ユーザーのパスワードです。
ステップ4:アプリケーションの実行
コードの編集が完了したら、以下のコマンドでコンパイルします:
javac Test.java
コンパイル完了後、次のコマンドでプログラムを実行します。以下のような結果が表示されれば、データベースへの接続に成功し、サンプルステートメントが正しく実行されたことを示します。
java Test
true
an,1
詳細情報
OceanBase Connector/J の使用方法の詳細については、公式リファレンス『OceanBase Connector/J』を参照してください。