アプリ版:「スタンプのみでお礼する」機能のリリースについて

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.別ファイルファイル読み込み + 変数置換

A 回答 (4件)

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/17 13:30

まぁ好き好きでしょうが、私が書くなら。

(SQLの部分についてのみ)

1)予約語(select insert from など)は小文字に統一する。
2)列を複数記述するなど、カンマで区切る際には 列名+カンマ+半角スペース+列名・・・・とする。

select CODE, NAME, BIRTHDAY from KOKYAKU;
のように。
select Code, Name, BirthDay from Kokykaku;
でもいいけど。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/17 13:26

私なら、Connection#prepareStatementを使うかな。


http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/06/17 13:25

個人的な意見としては


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

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

お礼日時:2007/06/17 13:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!