違いはありますか?使用するより良い方法は何ですか:String.format()
手動で値を挿入するかPreparedStatement
、値をプレースホルダーに解析します(コードのサイズはどれくらいですか)?
質問する
1556 次
2 に答える
2
根本的な違いがあります: aPreparedStatement
は、(メソッドを介して.set*()
) 与えられた値がデータベース (または、むしろ「JDBC エンジン」) に対して「ニュートラル」になるように、必要なものは何でも作成します。
PreparedStatement
はインターフェースであることに注意してください。そのため、このデータベース エンジンまたはそのデータベース エンジンに JDBC ドライバーを使用すると、そのエンジンに応じて異なる動作をすることができます。
そのために使用しないでくださいString.format()
。役割が全然違います!String.format()
SQL インジェクション攻撃を防ぐことはできません。PreparedStatement
その実装者が本当に、本当に悪い仕事をしない限り、できます。
于 2013-06-24T16:48:50.327 に答える