尝试从数据库中检索密码值时出现错误

时间:2016-08-17 04:41:41

标签: java mysql

首先,我了解可能有更好的方法来访问存储的密码。这是一个试图证明基本概念的基本项目。

我在尝试使用数据库验证用户登录时遇到问题。

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”永远不会进入控制台。

1 个答案:

答案 0 :(得分:0)

错误实际上是在对db的查询中。查询使用的变量是一个静态变量。我没有意识到常量的变量值永远不会改变。