Javaのフレームワークは、フロント部分はいいものがいろいろあると思うのですが、DBアクセス周りはHibernateもiBatisも正直微妙で、これが決定版!というものがありません。
個人的にはS2JDBCが使いやすいと思うのですが、Seasar2に依存しています(実際にはS2Containerを使わなくても動かせますが、Seasar2の依存JARが必要になりますし、現実問題としてS2Containerを使わないケースであればS2JDBCが候補に挙がることもまずないでしょう)。
というわけで、S2JDBCの2WaySQLが使えるDBUtils的なコンパクトなデータベースアクセスライブラリを作り始めました。
使い方はこんな感じ。JdbcManagerの代わりにSqlManagerというクラスを使います。また、流れるようなインターフェースは使わず、メソッド呼び出し一発で結果が返ってくるようにしています。
List<UserDto> userList = sqlManager.getResultList(UserInfo.class, "/sql/selectAllUsers.sql");
更新系は2WaySQLではなく、DTOを使って行うこともできます。
UserInfo userInfo = new UserInfo(); userInfo.userId = 1; userInfo.userName = "takezoe"; sqlManager.insertEntity(entity);
ちなみに2WaySQL周りのコードはS2JDBCからパチっていますw
世の中クラウドやiPhone/Andoridなどで盛り上がっていますが、地味にやってます…。