我正在处理一个 JSwing 项目,其中用户输入与MySQL数据库匹配的用户名和密码。我的代码中出现了'NullPointerException'。另外请告诉我我的代码是否有问题:)。我已经使用 JBcrypt 在MySQL的MD5加密中存储了密码。 我的JButton代码:
private void kButton3ActionPerformed(java.awt.event.ActionEvent evt)
{
String sql = "SELECT * FROM account WHERE Username=? AND Password=?";
char[] pass = jPasswordField1.getPassword();
String passString = new String(pass);
String hashed = BCrypt.hashpw(passString, BCrypt.gensalt());
if(!isNullOrEmpty(jTextField1.getText()) && !isNullOrEmpty(passString))
{
try
{
pst = conn.prepareStatement(sql);
pst.setString(1, jTextField1.getText());
pst.setString(3, hashed);
rs = pst.executeQuery();
rs.next();
if((jTextField1.getText() == null ? rs.getString(1) == null : jTextField1.getText().equals(rs.getString(1))) && BCrypt.checkpw(passString, hashed))
{
rs.close();
pst.close();
setVisible(false);
Login ob = new Login();
ob.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(null, "Incorrect username or password");
}
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
else
{
JOptionPane.showMessageDialog(null, "Some fields are empty");
}
}
NullPointException在此代码的某处显示。另外,如果我的md5加密有问题,请告知。