Derbyの使い方
TopLink Essentialsがサポートしている組み込みDBの中で、TopLinkのサポートが最もしっかりしているのは、現時点ではDerbyです。HSQLDBをサポートするクラスも存在するのですが、JPQLのサポートなどが充実していません。そこで、S2TopLinkもDerbyを添付してます。
・・・が、Seasar2のjdbc.diconにはDerbyの設定がないことに気づきました。
というわけで、簡単にDerby設定方法など・・・
<!-- for Derby --> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl"> <property name="driverClassName"> "org.apache.derby.jdbc.EmbeddedDriver" </property> <property name="URL"> "jdbc:derby:" + @org.seasar.framework.util.ResourceUtil@getBuildDir(@example.Test@class).getCanonicalPath() + "/derby" </property> <property name="user">""</property> <property name="password">""</property> </component>
example.Testというクラスが存在するクラスパスのルートに、derbyというディレクトリが存在すれば、Derbyはここを見に行くようになります。ただし、先にデータを入れておかなければなりません。そこで、Derbyに付属しているijというツールを使います。
java org.apache.derby.tools.ij
とコマンドに入力すると
ij バージョン 10.2 ij>
このような入力待ち画面になります。ここで、
ij>connect 'jdbc:derby:{jdbcで定義したderbyディレクトリまでのフルパス};create=true';
と入力すると、Derby用のディレクトリが指定した場所に自動的に作成されます(ディレクトリはDerbyに作らせないといけないみたいです。既にディレクトリが存在するとエラーになってしまいました)。あとは、コマンド上でCREATE文などを実行すればOK
ij>run '{SQLファイルのフルパス}';
とコマンド入力すれば、SQLファイルを実行することもできます。