首先,我了解可能会有更好的方法来访问存储的密码。这是一个基本项目,试图证明一个基本概念。
我在尝试验证用户使用数据库登录时遇到问题。
while(inputValue == null) {
System.out.println(PASSWORD_MESSAGE);
inputValue = in.nextLine();
try {
rs = statement.executeQuery(PASSWORD_QUERY);
while(rs.next()) {
System.out.println("TEST");
if(inputValue.equals(rs.getString("password"))) {
passwordValue = inputValue;
password= true;
break;
}
if(!inputValue.equals(rs.getString("password"))){
System.out.println(ERROR_MESSAGE);
inputValue = null;
break;
}
}
} catch(SQLException e) {
e.printStackTrace();
}
}
值
PASSWORD_QUERY
是(SELECT password FROM project.account WHERE username='" + usernameValue + "'
)我已经在数据库中仔细检查了此查询,它的工作正常。我的错误发生在while循环中。在调试模式下,它永远不会进入while循环,并且
system.out
消息“ TEST”也永远不会进入控制台。 最佳答案
该错误实际上是在对数据库的查询中。查询所使用的变量是静态变量。我没有意识到常量的变量值永远不会改变。