HSQL導入

HibernateによるORマッピングも少しずつ慣れてきた。AndroMDAによるhbm.xmlファイルの自動生成は上々。
ただし、Date型の解決は手書きでやるしかないのかなぁ・・・
出力時にjava/util/Dateパッケージを作ってみたが、生成されたものはパッケージ名が異なる。どうやらPoseidonでzumlを保存する時にイケナイ事をしているっぽい。


Poseidonをいじくればどうにかなりそうだが、面倒くさいのでパス。
とりあえずこの段階では、直接hbm.xmlファイルをいじればどうにかなるのでそれで修正。


ORマッピングツールを使うためには当然データベースを用意しなければならないのだが、軽量でcygwinもいらないことから今回はHSQLというデータベースを選択。OracleやDB/2のように高機能ではない分、とっても軽量で使い心地は悪くない。ただ、どうやらデータベースインスタンスはないらしい。というのは嘘で、サーバー起動時にデータベースインスタンスを指定するようだ。なければ作ってくれる。安直だが直截的でよろしい。

java -cp ../lib/hsqldb.jar org.hsqldb.Server -database data/panda -dbname panda

「panda」がデータベース名。これでデータベースがサーバーモードで起動する。安直。でもよい。ちなみに、これはbin/RunServer.batの内容を書き換えたもの、どうやらダウンロードした直後うまく動かなかったから、こうかえてやると動いた。


雑誌を見るとODBCブリッジがないようだけど、この軽量さを考えるとなくてもいい気がする。SQL文にいくつか制限があるようだが、それはもう少しやってみるアル。
あったとしてもHibernateに吸収させるから関係ないんだがな!


ついでにHibernateマッピングファイルをEclipse上で扱えるHibernatorなるEclipseプラグインも導入。気になるURLは

jdbc:hsqldb:hsql://localhost/

とこれでOK。一瞬「hsql」がデータベースインスタンスかと思ったらそうでもなかった。インスタンス名を指定しないで接続するのになれていないので悩むこと1時間。
あとはHibernator上の「Create Schema」をクリックするだけで、自動的にテーブルも作ってくれた。当然リレーションも含めて生成してくれるのでこれ一発。init.sqlとか書いていたのが嘘のようだ。まあ実際は一発ではなく、タイプの指定などでエラーが発生したのだが、ちょこちょこと直す程度、無問題。