这是相关的代码
createconn = new CreateConnection();
con = createconn.connect_to_database();
String SQL = "UPDATE User SET Password = SHA2(?,512) WHERE Login = ? AND Password = SHA2(?,512)";
stmt = con.prepareStatement(SQL);
stmt.setString(1, NewPassword);
stmt.setString(2, Login);
stmt.setString(3, CurrentPassword);
int count = stmt.executeUpdate();
System.out.println("Rows affected: " + count);
count始终设置为0,即即使当前密码正确也不会更新任何行。更糟糕的是,没有异常发生。 (即使当前密码错误)
当我使用固定的语句(对三个参数使用固定的值)时,代码会起作用,而不是这样编写。
整个代码都在一个函数中,该函数将三个参数作为参数。
感谢您的帮助。
答案 0 :(得分:1)
PASSWORD是保留字,也许工作台更宽容/更智能。尝试在周围添加刻度线。
`Password`