準備文でバインド変数を使用しない場合、パフォーマンスは低下します。 1以下バインド変数を持たないPreparedStatementはパフォーマンスに影響しますか?
String selectSQL = "SELECT USER_ID, USERNAME FROM DBUSER WHERE USER_ID = '101'";
PreparedStatement preparedStatement = dbConnection.prepareStatement(selectSQL);
私が知っている好ましい。
は、以下の例を考えてみましょう。 それは彼らが、ハードも、彼らはプリペアドステートメントを使用している文字列リテラルをコード化されているすべてのクエリでの私のプロジェクトの1ので尋ね、この質問SQLインジェクション
String selectSQL = "SELECT USER_ID, USERNAME FROM DBUSER WHERE USER_ID = ?";
を防ぐことができます。
両方のクエリはSQLインジェクションから安全です。最初のものが動的変数としてuseridを取得しない限り。 – Abhishek
@Abhishek例はおそらく残念です。私は彼が '' SELECT ... WHERE USER_ID = '"+ userId +"' "のような何かを意味すると思います。 – Thomas
@Thomas彼はそれだけを意味すると思います:P – Abhishek