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);
}