Javaに手軽さがほしい

javaからdbにアクセスしてると、結構DRYじゃないプログラムを書いている自分がいることに気づく
あと、いちいちBeanを作るのが面倒
何でも最近の動的型付け言語は素敵らしい


というわけで安全性を犠牲にして、手軽なDBアクセスのクラスを作ってみた
結果一行を
Mapの形にする
column名がkeyで値がvalue
でこれのListを返す
キャストしたりとか面倒だが・・・
select, insert, update, deleteのメソッドを用意し
sqlとインジェクション対策にPreparedStatementにセットするパラメータを
引数で渡す(ちなみにselect以外は同じ処理でかけるのでupdate, deleteはinsertを呼び出してるだけだったりする・・・)
問題なのがコネクションとトランザクション
finalizeメソッドをオーバーライドしてコネクションのクローズを書くが
gcのタイミングが読めないのでfor文とかでコネクション取得し続けると
パンクする(System.gc()を呼べば問題はないが・・・)


というわけでコネクションクローズ用のメソッドを追加
finalizeでこれを呼ぶが基本的には手動でcloseしてもらう


こんな状態じゃトランザクションなんて当然無理なので
ここだけは手動で
代わりと言っちゃ難だが、トランザクションの有無は選択できるようにした


あとはサブクラスで具体的にコネクションを取得する方法を定義してくれれば使える


う〜ん・・・まだ面倒くさいなぁ・・・
だれか事前の設定とかAOPとかなしでPOJOな感じでこの辺うまくやる方法知ってる人は教えてほしい