argius note

プログラミング関連

Apache Derby

JDBCのテストを行うのに、ネットワークを介したRDBMSを使いたくなかったので、試してみました。

何も考えずにインストール

バージョンは10.2.2.0。下記のサイトを参考にしました。
404 Error - Not Found
ダウンロードして適当なディレクトリに配置し、クライアントはStewで試しました。設定は下記の通り。

  driver-lib : /apache-derby-10.2.2.0/lib/derby.jar
driver-class : org.apache.derby.jdbc.EmbeddedDriver
         url : jdbc:derby:derbyDB;create=true
        user : user1
    password : (デフォルト)

あとは一般的なRDBMSと同様の操作をすれば良いだけ。らくちん。

使いつつ調べつつ

ドキュメントは配布物に含まれています。但し、もちろん英語です。日本語もちょっとだけならあります。
http://db.apache.org/derby/docs/dev/ja_JP/getstart/

ただ、日本語だと網羅的な情報はあまり見つからなかったので、付属のマニュアルを読みながらやってみました。付属マニュアルのリファレンスの、"DerbySetting attributes for the database connection URL"あたりに、JDBCのURLについて書かれています。

そんなこんなで、色々やってみた結果をまとめてみました。

  • "embedded"モードでは、同時に複数のアプリケーションから使えない。同時でなければ共有は可能。
  • データディレクトリは、プロセスを起動したディレクトリ*1の下のデータベース名のディレクトリ。このディレクトリが無い場合は、URLに"create=true"を付けると新しく作られるが、付けないと"データベース 'xxx' が見つかりません。"と怒られる。
  • 文字データ型はJavaのStringに対応しているので、日本語でもString#length()の桁数となる。CHAR(5)の列は"あいうえお"が格納できる。

*1:Windowsなら"作業フォルダ"、Eclipseなら"実行→引数タブ→作業ディレクトリー"のこと。