ApacheDerbyのススメ

なんかとりあえず検証や、サンプルプログラムを動かしたい場合、しかもDBが必要になる場合、選択肢はMySQLPostgreSQL

いえいえ、もっと手軽にやるならDerbyでしょ。

特別なインストールも、設定も不要。サンプルプログラム動かすだけならDLして、解凍して、パス設定しておしまい。

サーバプロセスとしての起動と停止はbin配下の以下のスクリプトをそれぞれ実行するだけ。


起動
startNetworkServer.sh

停止
stopNetworkServer.sh

Windowsの場合は*.shではなく*.bat)

データベースを手動で作成する必要はありません。JPAで簡単なアプリケーションを実行するぐらいなら設定ファイルに以下の一文を記述するだけ。

persistence.xml

<properties>
    ...
    <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/データベース名;create=true"/>
    ...
</properties>

データベース名;create=trueとしておけば、データベースがなければ勝手に作ってくれます。hibernateを利用する場合hibernate.hbm2ddl.autoの設定値をcreate-dropとしてJUNITで検証なんてことも簡単です。Mavenを利用する場合は以下の設定をPOMファイルにすればOKです。

<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbyclient</artifactId>
    <version>${derby.version}</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>${derby.version}</version>
    <scope>test</scope>
</dependency>


実際に作成されたデータベースに接続する場合はijコマンドを利用します。


$ij
ij> connect 'jdbc:derby://localhost:1527/データベース名';

簡単ですね。ちなみにテーブルの一覧はshow tables;コマンドで表示できます。ユーザ認証とかは特に設定しなければ不要です。

利用し終わったらディレクトリごと削除すればOK。(パスを設定した場合はパスも削除。)

ホントに手軽に利用できるのでDerbyはおススメです。MySQLPostgreSQLをセットアップするのは面倒という方はぜひ利用してみてください。(情報量が少ないのが難点ですが・・・。)

ちなみにJDKをインストールするとJavaDBというものがインストールされている場合があると思いますが、これはまさしくDerbyです。

なのでわざわざ個別に落とさなくても標準のJavaDBを使うのももちろんありです。