2008年2月28日木曜日

そろそろS2JDBC

スズキです。

今までずっとKuina-Daoだったんですが、
そろそろ、S2JDBCも検討しようかと思っています。
http://s2container.seasar.org/2.4/ja/s2jdbc.html

僕のスタイルは、
「すべてSQLファイルを作成 & エンティティクラスは作らない」
です。

で、今までは、S2DaoよりKuina-Daoの方がやりやすいなー
と思い、ずっとKuina-Daoでした。
(今、S2Dao評価したら、また違うかも…)

まずはSQLファイルでの利用についてです。
http://s2container.seasar.org/2.4/ja/s2jdbc_manager_sqlfile.html
を読む限り問題ありません。
(S2Dao譲りのパラメータも健在です)

問題ないというよりも、
▼検索結果の行数取得(getCountBySqlFile)
http://s2container.seasar.org/2.4/ja/s2jdbc_manager_sqlfile.html#%E6%A4%9C%E7%B4%A2%E7%B5%90%E6%9E%9C%E3%81%AE%E8%A1%8C%E6%95%B0%E5%8F%96%E5%BE%97
▼ページング(limit/offset)
http://s2container.seasar.org/2.4/ja/s2jdbc_manager_sqlfile.html#%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0
といった機能は、僕にとって大きな乗換えポイントです。
(今までは、いちいち「SELECT COUNT(*) FROM ~」作ってました…)

次はエンティティクラスは作らないに関してですが、
これは言い換えれば、結果をMapで取得したい、
ということになります。

これも、BeanMapというクラスを使うことで、実現できるようです。
すばらしい!

心配ごととして、SQLに渡すパラメータが複数の場合、
JavaBeansにして渡す必要があり、このため、
クラスがいたずらに増えてしまいそうだなー、
というのがありますが、よく考えたら、
Kuina-Daoでは、よく、DaoにPageクラスを引数として
渡していたので(iret-ceoの技)
http://iret-ceo.blogspot.com/
まあ、大丈夫かな?って感じです。

ということで、Teeda&S2JDBCでサンプル作ってみて、
問題なければ、次からのSeasar2案件はこのパターンで
いきたいと思っています。

Teedaの新機能も検証しなければ…

--

http://suz-lab.blogspot.com/

0 コメント: