JavaとGroovyのハイブリッドWebアプリ

今日,行きの電車でふと思いついたんで,ここで作ったSQLiteのDBを利用するWebアプリを作ったよ。
クライアントアプリでいいかと一瞬考えたが,Swingまわりでモタつくの目に見えてるし,BubblesStick使えば,クライアントアプリ同然なんでWebアプリでいいや。


UIにAJax使いたかったんだけど,何をトチ狂ったかGrailsWicketを先に調べて,地力が足らず行き詰まる。で結局,使い慣れたClickで落ち着いた。
#なんで,最初からClickにしなかったんだろ?>自分


画面はClickでOKなんだけど,ロジックをJavaで書くのもちょっとアレだからGroovyで書いた。embeddalbe用のgroovy-all-1.5.x.jarをWEB-INF/libに放り込むだけだし,Javaから見りゃGroovyもクラスだし,それこそJetGroovyの本領発揮ってもんだ。;-)


Groovyを使いたかったのはGSQLを使いたかったからなんだけど,こんなコード書けちゃうと,使い捨てのツールのためにJava使う気にはなれんよな。

  def execute(cmd, arg) {
    // cmdの値と同じ名前のメソッドを呼ぶ
    this."${cmd}"(arg)
  }

  def insert(arg) { ... }
  def update(arg) { ... }

もうね,Groovy楽。ちょー楽チン。あとClickも楽。たまらんわ。:-D
#せっかくだから,時間見つけてGrails版とWicket版も作ってみようっと。


ps.
課題と言えば,SQLiteのDBの置き場だ。この程度のツールのためにデータソースとか作りたくないんで,WARに同梱したいんだけど,接続文字列の組み立てに悩む。"jdbc:sqlite:test.db"だとカレントディレクト*1を見に行く。
あまり良い解決策も思いつかなかったんで"jdbc:sqlite:/c:/test.db"とかでお茶を濁す

*1:大抵の場合,APサーバのbinディレクトリになるはず