HibernateとS2DaoとS2JDBCの考え方で思ったこと

エンティティとテーブルのマッピング方針の違いとかに焦点があてられているので特に触れられていないですけど、ストアドプロシージャーとかストアドファンションがどれだけ簡単に呼び出せるかで比較してもおもしろいと思います。この観点で比較すると、ダントツでS2JDBCが便利です。
S2JDBCは、OraclePostgreSQLのようにOUTパラメータで結果セット(カーソル)を返すストアドに対応しているし、複数の結果セットを返すストアドも呼び出せます。(ところで、Railsはストアド呼び出しのサポートってあるのかなぁ?)


ストアド好きな人にはきっと魅力的なんじゃないかなぁって思います。


あと、S2JDBCJPAのトラぶりやすい機能を除いたプロダクトであることは間違いないですけど、名前が表すとおりJDBCに一番近いプロダクトでもあります(selectBySql()やselectBySqlFile()を使う場合)。

内製フレームワークとかでJDBC直または薄くラップして使っている現場ってまだまだ多いと思うんですが、2JDBCは、そういうところで導入しても効果があるんじゃないでしょうか。いきなり新しい方法を取り入れるといろいろコストがかかりますしね。

そういう環境ではDIとかAOPとかいろんな制約で使いにくかったりすると思うんですが、そのときは、わりきってサービスロケータでJdbcManagerを取得して使うって方法で十分有効じゃないかって思います。