凪瀬さんのエントリに触発されました。
http://blogs.wankuma.com/nagise/archive/2007/11/20/109498.aspx
Javaをやっていると、データベース操作がスッキリしません。何故なのでしょうか。
まずJavaは基本的にSQLの記述に向いていません。原因は文字列。ヒアドキュメントや、マルチラインストリングがサポートされていないので、気持ちの悪い文字列連結の繰り返しになります。
ヒアドキュメントが使えると、
というような感じで書けます。以下は一般的な方法です。
私はSQLファイルを置いておいて、クラスからロードする手法か、StringWriterをラップしたPrintWriteのインスタンスを作ってSQLを生成します。SQL文の追加のたびに、意図的に空白を追加する必要はありません。
どちらにせよ気持ちの悪いコードです。この辺が解決できると、コード内にSQLを書くモチベーションも上がるのではないでしょうか。
次のエントリでは解決法の前に、オブジェクトとレコードのマッピングについて考察してみます。