はじめに
Apache DerbyはJavaで実装されたRDBMSです。お手軽に使えるので便利です。
今回は導入方法と、簡単な使い方をメモしておきます。
(簡単に設定・実行できますが、自分はijの起動でJAVA_HOMEのエラーが出てはまりました・・・)
環境:Mac OS 10.15.7
Derbyのダウンロード
以前はJDKの中に入っていましたが、最近のJDKでは入っていません。自分でダウンロードする必要があります。
- Apatch Derbyをダウンロードします。
- ダウンロードしたら適当なフォルダに解凍します。 (ここでは/Users/XXXX/derbyに解凍)
設定
インストールしたフォルダ配下のbinにPATHを通しておきます。
.zprofileに、/Users/XXXX/derby/binを追加します。
export PATH=/Users/XXXX/derby/bin:$PATH
ijの起動
ijはDerbyのデータベースの作成やコマンドの実行などを行うツールです。
terminalでijを実行します。成功すると以下のように表示されます。
ijバージョン10.15
ij>
以下のように表示され起動できないこともあります。 > Error: JAVA_HOME is not defined correctly. > We cannot execute /System/Library/Frameworks/JavaVM.framework/Home/bin/java
このときはJAVA_HOMEの設定がうまくいっていません。ij
を修正して対応します。
case "`uname`" in
CYGWIN*) cygwin=true ;;
Darwin*) darwin=true
if [ -z "$JAVA_HOME" ] ; then
# JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
JAVA_HOME=$(/usr/libexec/java_home)
fi
;;
esac
中段あたりのJAVA_HOMEの設定箇所を$(/usr/libexec/java_home)
に変更します。
これで起動できるようになります。
データベースの作成
terminalでijを実行した状態で、以下のコマンドを実行します。
ij> connect 'jdbc:derby:/Users/XXXX/db/test.db;create=true';
/Users/XXXX/db/配下にtest.dbというファイル(データベース)を開こうとします。
create=trueをつけると、ファイルが存在しない場合は自動的に作成します。
これでデータベースが作成(接続)されます。
テーブルの作成
データベースに接続できたので、次はテーブルを作成します。
CREATE TABLE USER_INFO (
USER_ID VARCHAR(10) PRIMARY KEY NOT NULL,
USER_NAME VARCHAR(20) NOT NULL,
ADDRESS VARCHAR(200),
POST_CODE VARCHAR(7),
AGE INTEGER,
BIRTHDAY DATE
);
これをコピーしてijに貼り付けるか、runコマンドで実行します。
ij> run 'createTable.sql'
これでテーブルが作成できました。
JDBC接続
アプリなどからJDBC接続でアクセスすることが多いと思います。
JdbcDriver=org.apache.derby.jdbc.EmbeddedDriver
JdbcUrl=jdbc:derby:/Users/XXXX/db/test.db;
jdbcDriverは、Derbyインストール先の/lib/derbytools.jar
にあるのでクラスパスに追加します。
derby.jar
の場合もあります。バージョンによって異なります。
コマンド
よく使う便利なコマンドを紹介します
テーブル一覧
ij> show tables;
テーブル構造の表示
ij> describe user_info;
user_info はテーブル名
スクリプトファイルの実行
ij> run ファイル名;
ファイル名はフルパスまたはijを起動したフォルダからの相対パス