- ベストアンサー
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.別ファイルファイル読み込み + 変数置換
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私なら、Connection#prepareStatementを使うかな。 http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/sql/Connection.html#prepareStatement(java.lang.String)
その他の回答 (3)
- pcbeginner
- ベストアンサー率46% (261/560)
個人的な意見としては SQLを別ファイルにしても良いなら、別ファイル。 PreparedStatementを使って、動的な部分は「?」で別ファイルに記述。 別ファイルにしないでコードに記述するならSQL文はStringではなく、StringBuffer(1.5以降ならStringBuilder?)、余計な「+」が入らないので見易くなる。(と私は思う。)
お礼
アドバイスありがとうございます。 やはり、別ファイルにするのが一番すっきりしますね。 PreparedStatementを使って「?」を置換し Queryは別ファイルにすることにしました。
- bin-chan
- ベストアンサー率33% (1403/4213)
まぁ好き好きでしょうが、私が書くなら。(SQLの部分についてのみ) 1)予約語(select insert from など)は小文字に統一する。 2)列を複数記述するなど、カンマで区切る際には 列名+カンマ+半角スペース+列名・・・・とする。 select CODE, NAME, BIRTHDAY from KOKYAKU; のように。 select Code, Name, BirthDay from Kokykaku; でもいいけど。
お礼
アドバイスありがとうございました。 参考にさせて頂きます。
- Ceren
- ベストアンサー率49% (90/183)
J2SE 5.0以降のバージョンならString.format()を使えばスッキリするかもしれません。
お礼
アドバイスありがとうございます。 Javaソース上にSQLを書くには限界があるようなので別ファイルを読み込む事としました。 他の部分で参考にさせていただきます。
お礼
アドバイスありがとうございます。 PreparedStatement を使うことにしました。