1

違いはありますか?使用するより良い方法は何ですか:String.format()手動で値を挿入するかPreparedStatement、値をプレースホルダーに解析します(コードのサイズはどれくらいですか)?

4

2 に答える 2

2

根本的な違いがあります: aPreparedStatementは、(メソッドを介して.set*()) 与えられた値がデータベース (または、むしろ「JDBC エンジン」) に対して「ニュートラル」になるように、必要なものは何でも作成します。

PreparedStatementインターフェースであることに注意してください。そのため、このデータベース エンジンまたはそのデータベース エンジンに JDBC ドライバーを使用すると、そのエンジンに応じて異なる動作をすることができます。

そのために使用しないでくださいString.format()。役割が全然違います!String.format()SQL インジェクション攻撃を防ぐことはできません。PreparedStatementその実装者が本当に、本当に悪い仕事をしない限り、できます。

于 2013-06-24T16:48:50.327 に答える