DBアクセスライブラリ

私も以前、簡易ORマッパーのようなものを作ったことがあります。単なるcommons-dbutilsの拡張版ですが。
しかしオリジナルのdbutilsっていろいろと問題点がありました。たとえば

  • BeanHandler系で、ResultSetからgetObjectで取得したデータの型とFieldの型が一致しないとマッピングできない
  • Bean → Tableの機能(INSERT/UPDATE/DELETE)がない。

これだけで十分「使えないライブラリ」ですよね。BLOBとかCLOBとかもダメ。
自作した拡張ポイントとしては

  • BeanHandler系の強化版Handlerの追加。
  • INSERT/UPDATE/DELETE機能。Batchによる実行も可能。

こんなもんです。でもこれで十分使えるレベルになりました。
ちなみに強化版Handlerの中では

  • プリミティブ型へのマッピングの強化
  • BLOB、CLOBの対応
  • Fieldの型にあわせてResultSetから値の取り方を変えるResultSetConverterの追加。
  • テーブルの項目名とBeanのField名が一致しないときのColumnアノテーション導入。

などなどを。目玉機能は特に無いけど最低限の機能は入れた感じ。

ORマッパーなど腐るほど存在するこの時代に、なんでこんなもんが必要だったかというと、「JDBC依存のコードを置き換え出来るライブラリ」を求めていたからです。要するに特殊なコンテナや設定に依存しないもの。有名なORマッパーとしては、iBATISがこの要求をある程度満たしています。

このレベルののライブラリは初期導入と使用方法が簡単なので、手離れが良いのがうれしいのです。オフショア開発や自分が離脱するとわかっているプロジェクトに導入しても、後のトラブルや質問攻めにあいにくいのです。また、ORマッパーを全く使用していないようなダメプロジェクトに途中参戦するような時にも、心強い見方になってくれます。

じゃーiBATIS使えば良いじゃんといわれそうですが、iBATISXMLでいろいろ書くのが嫌なんです。
そんなわけでrubbish-dbはドンピシャっぽくて今注目してるわけです。clickのscaffoldを用意してるからってだけじゃなくてですね。もうちっといろいろ見てみます。