コンピューターシステム株式会社

技術BLOG

Apache Derbyの導入

環境構築 2019/08/15 大阪担当

こんにちは。大阪営業所のくいだおれ二郎です。

今回はApache Derbyの導入です。
Apache DerbyはJavaで実装されたRDBMSです。
IBMが寄贈したソースコードをベースにApacheソフトウェア財団(Apache Software Foundation)管理の下、
開発されています。

Oracle JDK6からはJavaDBというブランド名で同梱され、特別なセットアップなしで利用できていましたが、
商業上の理由からか非同梱となりました。

最新(本稿執筆時点)のOpenJDK 12にApache Derbyを導入し、疎通確認をしてみたいと思います。
(以降はWindows10環境での手順やキャプチャです。お使いの環境に応じて読み替えて下さい。)

OpenJDK 12をセットアップします。

OpenJDKのサイトに移動し、「JDK 12」をクリックします。

環境に合ったファイルをダウンロードし、任意の場所に解凍します。

解凍したbinフォルダにPATHを通します。
コマンドプロンプトで「java -version」を実行し、JDKのバージョン情報が表示されることを確認します。

Apache Derbyをセットアップします。

Apache Derbyのダウンロードページに移動します。
「For Java 9 and Higher」の下にあるリンク(ここでは「10.15.1.3」)をクリックします。

「db-derby-*-bin.zip」(ここでは「db-derby-10.15.1.3-bin.zip」)をクリックしてダウンロードします。

ダウンロードしたファイルを解凍します。
ここでは、JavaDBに倣って「db」フォルダとして解凍しています。

「db」フォルダを環境変数「DERBY_HOME」として設定します。

NetworkServerを起動します

Apache DerbyはOracle DatabaseやSQL Server等の一般的なRDBMSと同様にネットワークを介してデータベース機能を利用することができます。
そのためのサーバー側コンポーネントがNetworkServerという名前で提供されています。

コマンドプロンプトで任意のフォルダに移動します。(この場所がNetwork Serverのルートディレクトリになります。)
java -jar %DERBY_HOME%\lib\derbyrun.jar server start」を実行してNetwork Serverを起動します。
起動すると、コマンドプロンプトに表示されているとおり、ポート番号1527でクライアントからの接続要求を待ち受けます。

コマンドラインツール(ij)を起動して疎通確認します。

新たにコマンドプロンプトを起動して「java -jar %DERBY_HOME%\lib\derbyrun.jar ij」を実行します。

connectコマンドで接続します。
connect 'jdbc:derby://localhost:1527/Sample;create=true';

createオプションをつけると、データベースが新しく作成されます。
今回は以下のようなフォルダ、ファイルが作成されてました。

月並ですが、Oracle Databaseでいう「SELECT SYSDATE FROM DUAL」に
相当するSELECT文「SELECT CURRENT_TIMESTAMP FROM SYSIBM.SYSDUMMY1」を実行してみます。
(IBMの痕跡が残っているところが興味深いですね。)

データベースから切断するには「disconnect;」コマンド、
コマンドラインツール(ij)を終了するには「exit;」コマンドを実行します。

Pleiades(Eclipse)を起動して疎通確認します。

Pleiades All in OneのJava Full Edition(リリース 2019-03)を使って疎通確認します。

「データベース開発」パースペクティブをクリックします。
もし、「データベース開発」パースペクティブが表示されていなければ、
「ウィンドウ」→「パースペクティブ」→「パースペクティブを開く」→「その他」から「データベース開発」を選択して下さい。

「データ・ソース・エクスプローラー」で「データベース接続」を右クリックし、「新規」をクリックします。

接続プロファイル・タイプで「Derby」を選択します。
「名前」は自分の好みの内容を入力して下さい。(ここでは「Sample」と入力しています)
「次へ」ボタンをクリックします。

「新規ドライバー定義」アイコンをクリックします。

「名前/タイプ」タブで「Derby クライアント JDBC ドライバー」のシステム・バージョン「10.2」を選択します。

「jarリスト」タブで「derbyclient.jar」を選択し、「JAR/Zipの除去」ボタンを押下します。

「Jar/Zipの追加」ボタンを押下し、Apache Derbyを導入したフォルダの中にある「lib\derbytools.jar」を選択し、「OK」ボタンを押下します。

※これはApache DerbyのJDBCドライバーが10.15.*でderbyclient.jarとderby.jarからderbytools.jarへ統合されたために必要な手順です。
詳しくはリリースノートを参照して下さい。

※10.15.*より前のバージョンを利用する場合は、derbyclient.jarを指定する必要があります。ご注意下さい。

以下の画像のように入力し、「接続のテスト」ボタンを押下します。

「Pingが正常に完了しました」とポップアップ表示されたら「OK」ボタンを押下してポップアップ画面を閉じて下さい。

「新規 Derby 接続プロファイル」画面の「完了」ボタンを押下します。

「データ・ソース・エクスプローラー」でスキーマやテーブル等のデータベースオブジェクトを探索できるようになりました。

NetworkServerを停止します

新たにコマンドプロンプトを起動して「java -jar %DERBY_HOME%\lib\derbyrun.jar server shutdown」を実行します。

今回は疎通確認まででしたが、次の機会にはもっとディープな部分まで探検してみたいと思います。
それではまた。