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