Apache Derby †Apache DerbyはIBMが開発していた100% Pure JavaのデータベースCloudscapeをApacheに寄付しオープンソースで開発が行われているデータベースです。100% Pure Javaのデータベースとして有名なものとしてHSQLDBがありますが、Derbyは次のような利点があります。
つかってみよう †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."ユーザ名"=パスワード でユーザを定義。 |