У меня есть рамка для редактирования пароля для пользователя (пациента), и я сделал много способов проверить, соответствует ли введенный пользователем пароль текущему паролю в базе данных, я попытался (.isBeforeFirst ()) и () даже если это правильно. пожалуйста, скажите мне, что не так, и покажите мне правильный и простой способ проверки: (
вот мой текущий код:
Connection con;
Statement st;
PreparedStatement ps;
ResultSet rs;
public boolean checkPassPatient(String id,String pass) {
boolean flag=false;
try{
con = DriverManager.getConnection("jdbc:derby://localhost:1527/hj", "xxx", "xxx");
// st=con.createStatement();
// rs=st.executeQuery("select patient_password from patient where patient_id='"+id+"'");
try (PreparedStatement pstmt = con.prepareStatement("select patient_password from patient where patient_id=?");) {
pstmt.setString(1, id);
int rows = pstmt.executeUpdate();
if (pstmt.getResultSet().equals(pass))
flag= true;
else
flag= false;
}
}catch(SQLException ex){
}
return flag;
}
а вот как я называю метод:
if (checkPassPatient(id,current)==true){
try (PreparedStatement pstmt = con.prepareStatement("UPDATE patient SET patient_password=? WHERE patient_id=?");) {
pstmt.setString(1, newpass1);
pstmt.setString(2, id);
int rows = pstmt.executeUpdate();
JOptionPane.showMessageDialog(null , "Patient password successfuly changed!",
"Patient password successfuly changed! (updated rows: "+rows+")", JOptionPane.PLAIN_MESSAGE);
}
} else
JOptionPane.showMessageDialog(null , "Your current passwords not true !! , try again", "Your new passwords are not equal!! , try again",JOptionPane.ERROR_MESSAGE );