FrontPage

Apache Derby

Apache DerbyはIBMが開発していた100% Pure JavaのデータベースCloudscapeをApacheに寄付しオープンソースで開発が行われているデータベースです。100% Pure Javaのデータベースとして有名なものとしてHSQLDBがありますが、Derbyは次のような利点があります。

  • ロックに対応
  • ネットワークドライバを利用するとXAが利用可能
  • SQLのサポートが豊富(DB2互換)
  • Triggerのサポート

つかってみよう

Apache DerbyをApache Derbyのサイトからダウンロードし、適当な場所に解凍します。次のようにすると、データベースを作成しSQL文を実行することができます。

$ java -classpath "lib/derby.jar:lib/derbynet.jar:lib/derbytools.jar" org.apache.derby.tools.ij
ij version 10.0 (C) Copyright IBM Corp. 1997, 2004.
ij> connect 'jdbc:derby:test;create=true';
ij> create table member (id int, name varchar(255));
0 rows inserted/updated/deleted
ij> insert into member values(1, 'Tidus');
1 row inserted/updated/deleted
ij> select * from member;
ID    |NAME
-----------
1     |Tidus

データベース名testの後に;create=trueを指定していますが、これはデータベースが存在しない場合、自動的にデータベースを生成することを示しています。javaコマンドを実行したディレクトリの下のtestという名前のディレクトリにデータベースが生成されます。

また、ijでは、Apache Derby以外のJDBCドライバを利用することもできます。例えば、次のようにすると、ODBCドライバを利用することができます。

ij> driver 'sun.jdbc.odbc.JdbcOdbcDriver';
ij> connect 'jdbc:odbc:myOdbcDataSource';

JDBCドライバ名

埋め込み用ドライバ:org.apache.derby.jdbc.EmbeddedDriver?

http://incubator.apache.org/derby/manuals/getstart/gspr26.html#HDRSII-GSQUICK-35368

ネットワーククライアントドライバ:org.apache.derby.jdbc.ClientDriver?

jdbc:derby://server[:port]/databaseName[;attributeKey=value]..

http://db.apache.org/derby/papers/DerbyClientSpec.html

ネットワークサーバの起動

次のようにNetworkServerControl?を起動します。

$java org.apache.derby.drda.NetworkServerControl start [-h <host>] [-p <portNumber>]

Javaプログラムから起動する場合は、まずderby.propertiesに次のように設定しクラスパスのルートに含めます。

derby.drda.startNetworkServer=true
derby.drda.portNumber=1110
derby.drda.host=myhost

portNumberとhostは省略可能です。起動は、次のようにします。

NetworkServerControl server = new NetworkServerControl(null);
server.start (null);

シャットダウンは次のようにします。

$java org.apache.derby.drda.NetworkServerControl shutdown [-h <host>][-p <portnumber>]

Javaプログラムからシャットダウンする場合は次のようにします。

NetworkServerControl server = new NetworkServerControl();
server.shutdown();

ユーザ設定

derby.propertiesに次のように設定。

derby.authentication.provider=BUILTIN

あとは、

derby.user."ユーザ名"=パスワード

でユーザを定義。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-19 (火) 21:21:36 (4937d)