私はPreparedStatement
を作成します。あなたの問題を解決していない答えを引数に渡す必要がある場合は、あなたの質問の部分を詳細に説明するように編集してください。 タイトルint値のPreparedStatementを作成する価値はありますか?
int値のPreparedStatementを作成する価値はありますか? SQLクエリですが、int引数を渡して実行後に終了する文を準備する価値はありますか?
void delete(int key, int orElse) throws SQLException
{
try(PreparedStatement pst = this.connection.prepareStatement(
"DELETE FROM a_table WHERE the_int_primary_key=? OR random_int_field=?"
))
{
pst.setInt(1, key);
pst.setInt(2, orElse);
pst.executeUpdate();
}
}
この声明を準備する価値はありますか?とにかくセキュリティを強化する予定ですか?
通常の声明でこれを行うとどうなりますか?それはどんな方法でも危険ですか?それは少し速く実行されますか?
void delete(int key, int orElse) throws SQLException
{
try(Statement stm = this.connection.createStatement())
{
stm.executeUpdate(
"DELETE FROM a_table WHERE the_int_primary_key="+key+" OR random_int_field="+orElse
);
}
}
編集:この質問はDo prepared statements slow down program conspicuously?ための複製されません :プリペアドステートメントを複数回再利用する
- 他の質問の平野、私は一度だけ、それを使用することを計画し、ドキュメントが既にあることを指定します再利用が速い
PreparedStatements
- 私はSQLインジェクションについて心配していますが、SQLにプリミティブなintパラメータを挿入できるかどうかわかりません。マイクロスピードの向上はちょっとプラスだと、私はパフォーマンスのために頼んでいません。もう1つの質問は、スピードを上げたいだけで、文字列、日付、またはその他の非プリミティブ型を使用している可能性があります。 Javaのドキュメントから
は常に準備文を使用するか、SQLインジェクション攻撃のリスクがあります –
常にです。 **常に**。必ず 'PreparedStatement'を使用してください。例外なく。言い訳しない。 –
[準備されたステートメントはプログラムを著しく遅くしますか?]の可能な複製はありますか?(http://stackoverflow.com/questions/3589961/do-prepared-statements-slow-down-program-conspicuously) – 4castle