PreparedStatement
を使用してSQLインジェクションに役立ついくつかのコードをSQLで記述しています。データベース内のPreparedStatementとデータベース名とカラム名の変数
例:
stm = c.prepareStatement("UPDATE "
+ listResults.get(i).get(TemplateFile.TYPEOFPLAY).toLowerCase()
+ " SET score=? WHERE player_name_fkey=? AND school_name_fkey=? AND tournament_number=?;");
stm.setInt(1, Utilities.readNumber(listResults.get(i).get(TemplateFile.TOURNAMENT + j - 1)));
stm.setString(2, listResults.get(i).get(TemplateFile.NAME));
stm.setString(3, listResults.get(i).get(TemplateFile.SCHOOL_NAME));
stm.setInt(4, j);
私の質問は以下の通りです:パラメータ(?記号)はデータベース名と列のために使用することができるようにするPreparedStatementオブジェクトを取得する方法があります。 例えば:
stm = c.prepareStatement("UPDATE ? SET score=? WHERE player_name_fkey=? AND school_name_fkey=? AND tournament_number=?;");
stm.setString(1, listResults.get(i).get(TemplateFile.TYPEOFPLAY).toLowerCase());
stm.setInt(2, Utilities.readNumber(listResults.get(i).get(TemplateFile.TOURNAMENT + j - 1)));
stm.setString(3, listResults.get(i).get(TemplateFile.NAME));
stm.setString(4, listResults.get(i).get(TemplateFile.SCHOOL_NAME));
stm.setInt(5, j);
それはそんなに良く見えると同様に読みやすくなります。
ありがとうございました!
大変お答えいただき、ありがとうございました。 –