无法让我的 SQL 更新我通过它进行的更改
Can't get my SQL to update the changes I passed through it
所以我正在处理我的项目,我想通过它传递更改并连续更新两列。
我询问了用户的意见
System.out.println("Which one of the reviews you would like to change?");
List<Student> studentList = studentDao.getStudentRatings();
for (Student students : studentList) {
System.out.println(students);
}
System.out.println("Enter your student ID");
int student_idnumber = input.nextInt();
input.nextLine();
System.out.println("Enter your first name");
String firstname = input.nextLine();
System.out.println("Enter your last name");
String lastname = input.nextLine();
System.out.println("Enter your new rating");
int student_ratingnumber = input.nextInt();
input.nextLine();
System.out.println("Enter your new comments");
String comment = input.nextLine();
studentDao.changeReview(student_idnumber, firstname,lastname, student_ratingnumber,comment);
然后我将这些传递给我的 studentDao
public void changeReview(int student_idnumber, String firstname, String lastname, int student_ratingnumber,
String comment) {
try(Connection connection = ConnectionUtil.getConnection()){
String sqlString = "UPDATE student_things SET student_comments = ? , student_rating = ? where student_id = ?;";
PreparedStatement preparedStatement = connection.prepareStatement(sqlString);
preparedStatement.setInt(1, student_idnumber);
preparedStatement.setString(2, firstname);
preparedStatement.setString(3, lastname);
preparedStatement.setString(5, comment);
preparedStatement.setInt(6, student_ratingnumber);
preparedStatement.executeUpdate();
System.out.println("Review was updated");
}
catch (SQLException e) {
System.out.println("Change review failed");
}
但是每次都失败,因为它不会更新 table。我尝试 运行 postgres 中的相同命令并且这些命令有效,我尝试更改我的准备语句的参数。不确定我做错了什么。
参数的顺序必须与问号的顺序一致。特别是你的 student_id 应该排在最后。
所以我正在处理我的项目,我想通过它传递更改并连续更新两列。
我询问了用户的意见
System.out.println("Which one of the reviews you would like to change?");
List<Student> studentList = studentDao.getStudentRatings();
for (Student students : studentList) {
System.out.println(students);
}
System.out.println("Enter your student ID");
int student_idnumber = input.nextInt();
input.nextLine();
System.out.println("Enter your first name");
String firstname = input.nextLine();
System.out.println("Enter your last name");
String lastname = input.nextLine();
System.out.println("Enter your new rating");
int student_ratingnumber = input.nextInt();
input.nextLine();
System.out.println("Enter your new comments");
String comment = input.nextLine();
studentDao.changeReview(student_idnumber, firstname,lastname, student_ratingnumber,comment);
然后我将这些传递给我的 studentDao
public void changeReview(int student_idnumber, String firstname, String lastname, int student_ratingnumber,
String comment) {
try(Connection connection = ConnectionUtil.getConnection()){
String sqlString = "UPDATE student_things SET student_comments = ? , student_rating = ? where student_id = ?;";
PreparedStatement preparedStatement = connection.prepareStatement(sqlString);
preparedStatement.setInt(1, student_idnumber);
preparedStatement.setString(2, firstname);
preparedStatement.setString(3, lastname);
preparedStatement.setString(5, comment);
preparedStatement.setInt(6, student_ratingnumber);
preparedStatement.executeUpdate();
System.out.println("Review was updated");
}
catch (SQLException e) {
System.out.println("Change review failed");
}
但是每次都失败,因为它不会更新 table。我尝试 运行 postgres 中的相同命令并且这些命令有效,我尝试更改我的准备语句的参数。不确定我做错了什么。
参数的顺序必须与问号的顺序一致。特别是你的 student_id 应该排在最后。