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);
}
在此代码中,if(rs.next)
部分不起作用。我尝试在该块中打印一些单词,但它没有显示出来。什么是问题?
答案 0 :(得分:1)
rs.next()
尝试检索下一行。如果返回一行,则返回true
,如果没有更多行返回false
。
显然,您的查询不会返回任何行。
调试程序以显示参数值(通过在调试模式下运行,或者只是将值打印到stdout)。
答案 1 :(得分:-1)
rs.next()
将返回。它不适合你,因为你的resutset是空的。尝试调试并检查正在执行的查询的结果。