DBFlute奮闘記
かの有名なSeasarファンデーションのDBFlute ずっと気になっていたので
ここで奮起して環境をつくってみた
周りから手間が多いしなかなかうまくいかないよと忠告され
なかなかやる気がでなかったが、随分こなれてきたはずと思いスタート
初心者が役に立てる情報が出せればいいなと
早速古い雑誌を見つけてきて
簡単な環境を整えてみる
まとまってそうなのは
「WEB+DB vol.41」 2007年だ すごく古いが ほかになかなかまとまった情報がないので
仕方ないか
1)JDKを入れる
当時の環境だとJDK 1.5.0_12 とある
これもうないな 仕方なく JDK 1.5.0_22 をダウンロードする
インストールして、パスを通す
コマンドプロンプトで JAVA -version で確認
例のクイックタイムがクラスパスを汚すので クラスパスだけは確認しておく
大丈夫そうだ
2)ANTも同様 パスを通し ひとまず安心
3)Eclipse 3.2.2 これもなかなかないので 3.3で代用を
正直言って書籍ではSeaser3.2を http://eclipse.seasar.org/updates/3.2 から
落としてくるのだが 3.3でも可能と書いてある
意外とこれは詰まったが 3.2から落とすと Chura プロジェクトが作れるのだが 3.3から落とすと
作れない。ここはこの通りやるのであればポイント その後、プロジェクト名が変わったようだ
とりあえず、Dolteng/Kijimuna/S2JSF/DbLauncher/EMecha を選択しダウンロードする
DBFluteはEMechaに入っているらしい
5)パッケージエクスプローラーからじゃないと作れない!!!
メニュー→新規→プロジェクト→「Chura Project」を選択 と
これもはまってしまった、Eclipse から新規プロジェクトを作成するところで
何? Chura Project が出てこない!
くだらない話だが、ワークスペースをたくさん持っている人は要注意
必ずパッケージエクスプローラーからじゃないと出てこない模様
6)作成画面にプロジェクト名とルートパッケージを入力して・・・
プロジェクト名とルートパッケージ名を聞いてくるので
hogeproject seasardemo と記入し
プロジェクトタイプで Super Agile を選択
終了ボタンを押して無事終了 ・・何やら勝手にファイルを作ってるよう
7)データベースH2の用意
パッケージエクスプローラーからプロジェクトを右クリックしてプロパティー→DBLauncher を選択
Use H2 Database のチェックを確認
DbPortNo が 9092 で確認する
8)データベースの起動
パッケージエクスプローラーからプロジェクトを右クリックしてH2→Start H2 Server を実行する
おお動いた コンソールに
Web server running on http://192.168.2.105:8082 (only local connections)
TCP server running on tcp://192.168.2.105:9092 (only local connections)
と表示され無事DB起動
9)このChura Project にDBFluteクライアント環境の作成に入る
パッケージエクスプローラーからプロジェクトを右クリックして
メニュー→新規→その他→DBFlute Client Directory を選択
設定画面が出てくる
最初は意味がわからずいろいろやってしまったが
基本はChura Default ボタンを押せばいいよう
ただし、データベースの選択 → h2
その時にURIの設定は注意
データベースをファイルタイプで指定する場合には jdbc:h2:file で指定
今回サーバモードでH2立ち上げているので jdbc:h2:tcp://localhost:9092/なんとか
で設定しないといけない
ここは要注意
あとはDBFluteの最新バージョンを落として 終了ボタンを押す
10) DBFlute REPLASE-SCHEMA タスクの実行
これも予想通り一地縄ではいかない 9)で作成されたファイルの中にreplace-schema.batというファイルが作成
されるので これをコマンドプロンプトから実行
すると勝手にDBを作ってくれる スキーマ情報はdbflute_hogeproject/playsql/replace-schema.sqlに書かれている
もので行われるので 新しく作りたければこの情報を書きなおしてやればいい
コマンドプロンプトでエラーは確認しにくいので dbflute_hogeproject/log/dbflute.log のログを確認する
H2を使う場合 JDBCのドライバーのバージョンでエラーが頻発したので
注意する クラスパスの確認とドライバーのバージョン違いがある場合にはどちらかにする必要あり
デフォルトで2種類あったので これはよく起こる話だと思う
11) jdbc.bat ついに力尽きた・・・・
このタスクは難易度が高いような気がする・・・かなりログを見てるのだか未だ解決できない
エラーの状況からクラスが読み込めてないようだけど
2010-10-05 17:41:10,484 [main] ERROR (DfDBFluteTaskUtil#logError():203) - Look! Read the message below.
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Failed to execute DBFlute Task 'JDBC'.
[Advice]
Check the exception messages and the stack traces.
[Database Product]
H2 1.2.135 (2010-05-08)
[JDBC Driver]
H2 JDBC Driver 1.2.135 (2010-05-08) for JDBC 3.0