1
次のコードがあり、user_entered_student_idが既存のuser_idと同じであることを確認します。どのように私はuser_entered_student_idにすべてのuser_idを比較することができますSQLステートメントを介して?SQL選択文とユーザー入力値の比較
System.out.println("\nSign Up For a Class\n");
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ClassSelector?autoReconnect=true&useSSL=false", "root", "Volks91!");
System.out.println("Enter Student ID: ");
user_entered_student_id = sc.nextLine();
String selectClassId = "SELECT class_id FROM ClassSelector.classes";
myStmt = con.prepareStatement(selectClassId);
rs = myStmt.executeQuery(selectClassId);
while (rs.next()) {
if (selectClassId.equals(user_entered_student_id)) {
System.out.println("This is not a valid User ID");
}
else {
String selectStudentFromIdQuery = ("SELECT student_name FROM ClassSelector.students WHERE student_id = " + user_entered_student_id);
myStmt = con.prepareStatement(selectStudentFromIdQuery);
rs = myStmt.executeQuery(selectStudentFromIdQuery);
while (rs.next()) {
userEnterIdAsName = rs.getString("student_name");
System.out.println("Is " + userEnterIdAsName + " the correct student? (Y/N)");
String confirm = sc.nextLine();
if (confirm.equalsIgnoreCase("Y")) {
addClass();
} else if (confirm.equalsIgnoreCase("N")) {
System.out.println("Oops, let start over");
return;
}
}
}
}
} catch (java.sql.SQLException SQL) {
SQL.printStackTrace();
}
}
あなたはすでにクエリ自体でこれを行っていますか?あなたは[SQLインジェクション攻撃](http://bobby-tables.com)に脆弱であることに注意してください。 –
現在、ユーザが存在しないIDを入力した場合、アプリケーションが終了します。 user_entered_student_idが実際の生徒ではないというメッセージが表示されます。 –
私はコードを再フォーマットしましたが、それでもまだ動作していません。私が間違っていることは何ですか? –