• ベストアンサー

Javaソース上でのきれいなSQLの書き方

Javaのソース上でSQL文を書くと 読みにくく、書きにくくなってします。 特に表名や、列名などを変数で指定する場合は見苦しくてたまりません。 これぞという綺麗な書き方をご存知ないですか? 以下は自分で試してみた例です。 ex. 一般的? String tbName = "TestTable" + 1; String exName = "Who"; String sql = "INSERT INTO " + tbName + "(" + " Timestamp," + " Name) " + "VALUES(" + " CURRENT_TIMESTAMP," + " '" + exName + "');" ex. 変数置換 無駄な処理はありますが。 String tbName = "TestTable" + 1; String exName = "Who"; String sql = "INSERT INTO tbName(" + " Timestamp," + " Name) " + "VALUES(" + " CURRENT_TIMESTAMP," + " 'exName');" sql.replaceAll("tbName", tbName); sql.replaceAll("exName", exName); ex.別ファイルファイル読み込み + 変数置換

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.3

私なら、Connection#prepareStatementを使うかな。 http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/sql/Connection.html#prepareStatement(java.lang.String)

luckymako
質問者

お礼

アドバイスありがとうございます。 PreparedStatement を使うことにしました。

その他の回答 (3)

回答No.4

個人的な意見としては SQLを別ファイルにしても良いなら、別ファイル。 PreparedStatementを使って、動的な部分は「?」で別ファイルに記述。 別ファイルにしないでコードに記述するならSQL文はStringではなく、StringBuffer(1.5以降ならStringBuilder?)、余計な「+」が入らないので見易くなる。(と私は思う。)

luckymako
質問者

お礼

アドバイスありがとうございます。 やはり、別ファイルにするのが一番すっきりしますね。 PreparedStatementを使って「?」を置換し Queryは別ファイルにすることにしました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

まぁ好き好きでしょうが、私が書くなら。(SQLの部分についてのみ) 1)予約語(select insert from など)は小文字に統一する。 2)列を複数記述するなど、カンマで区切る際には 列名+カンマ+半角スペース+列名・・・・とする。 select CODE, NAME, BIRTHDAY from KOKYAKU; のように。 select Code, Name, BirthDay from Kokykaku; でもいいけど。

luckymako
質問者

お礼

アドバイスありがとうございました。 参考にさせて頂きます。

  • Ceren
  • ベストアンサー率49% (90/183)
回答No.1

J2SE 5.0以降のバージョンならString.format()を使えばスッキリするかもしれません。

luckymako
質問者

お礼

アドバイスありがとうございます。 Javaソース上にSQLを書くには限界があるようなので別ファイルを読み込む事としました。 他の部分で参考にさせていただきます。

関連するQ&A