首先,我了解可能有更好的方法来访问存储的密码。这是一个试图证明基本概念的基本项目。
我在尝试使用数据库验证用户登录时遇到问题。
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”永远不会进入控制台。
答案 0 :(得分:0)
错误实际上是在对db的查询中。查询使用的变量是一个静态变量。我没有意识到常量的变量值永远不会改变。