Java 如果发生了什么(rs.next)

Java 如果发生了什么(rs.next),java,jdbc,resultset,Java,Jdbc,Resultset,在此代码中,if(rs.next)部件不工作。我试着在那个块上打印一些单词,但没有显示出来。有什么问题吗?rs.next()将返回结果集中是否存在任何记录。它不适用于您,因为您的ResultSet为空。尝试调试并检查正在执行的查询的结果。rs.next()尝试检索下一行。如果返回一行,则返回true,如果没有更多行,则返回false 显然,您的查询没有返回任何行 调试程序以显示参数的值(可以在调试模式下运行,也可以简单地将值打印到stdout)。什么不起作用?啊,我明白了,else块起作用了吗?

在此代码中,
if(rs.next)
部件不工作。我试着在那个块上打印一些单词,但没有显示出来。有什么问题吗?

rs.next()
将返回结果集中是否存在任何记录。它不适用于您,因为您的ResultSet为空。尝试调试并检查正在执行的查询的结果。

rs.next()
尝试检索下一行。如果返回一行,则返回
true
,如果没有更多行,则返回
false

显然,您的查询没有返回任何行


调试程序以显示参数的值(可以在调试模式下运行,也可以简单地将值打印到stdout)。

什么不起作用?啊,我明白了,else块起作用了吗?也许哈希算法没有按预期工作。如何生成插入数据库的密码?请尝试
System.out.println(pst)
if
之前,确保此查询返回数据库程序中的行。谢谢!。我知道了
try {
    setPassword(txtPassword.getText());
    setUsername(txtUserName.getText());

    MessageDigest md;

    md = MessageDigest.getInstance("MD5");
    byte messgeDigest[] = md.digest(getPassword().getBytes());
    BigInteger number = new BigInteger(1, messgeDigest);
    String hashtext = number.toString(16);

    String qry = "SELECT * FROM users WHERE username=? AND password=?";
    pst = mscon.conn().prepareStatement(qry);
    pst.setString(1, getUsername());
    pst.setString(2, hashtext);
    rs = pst.executeQuery();

    if (rs.next()) {
        JOptionPane.showMessageDialog(null, "Login Successful");
        System.out.println("Login");
    }
    else{
        System.out.println("Tri again");
    }
} catch (NoSuchAlgorithmException ex) {

} catch (SQLException ex) {
    Logger.getLogger(MS_Login.class.getName()).log(Level.SEVERE, null, ex);
}