我想寻求帮助。我在if-else中的其他方法无法按我的要求工作。 如果条件正常运行,但是当我进行其他测试时,它在没有任何反馈的情况下无法正常工作,原因是我在else中创建了JOptionPane.show.Message。
private void BtnMasukActionPerformed(java.awt.event.ActionEvent evt) {
try {
sql = "SELECT * FROM kasir WHERE username='" + TxtUser.getText() + "' AND password='" + TxtPass.getText() + "'";
try {
rs = stm.executeQuery(sql);
} catch (SQLException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
}
try {
while (rs.next()) {
setNama(rs.getString("nama_kasir"));
setHak(rs.getString("hak_akses"));
if (TxtUser.getText().equals(rs.getString("username")) && TxtPass.getText().equals(rs.getString("password"))) {
JOptionPane.showMessageDialog(null, "Anda Berhasil Login");
this.dispose();
new home().setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "Maaf, Username atau Password Anda Salah");
}
break;
}
} catch (SQLException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
} catch (HeadlessException e) {
JOptionPane.showMessageDialog(this, e.getMessage());
} catch (ClassNotFoundException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (HeadlessException e) {
}
}
答案 0 :(得分:0)
这是非常不好的做法
"SELECT * FROM kasir WHERE username='" + TxtUser.getText() + "' AND password='" + TxtPass.getText() + "'";
因为任何人都可以注入sql。选中this image。请改用prepared statements
。
回答您的问题。首先,您正在执行的查询正在搜索USER和PASSWORD。因此,如果您设置了错误的密码,它将不会返回任何内容。
if (!resultSet.isBeforeFirst() ) {
System.out.println("USer not found, or incorrect password");
} else
{
while (rs.next()) {
setNama(rs.getString("nama_kasir"));
setHak(rs.getString("hak_akses"));
if (TxtUser.getText().equals(rs.getString("username")) && TxtPass.getText().equals(rs.getString("password"))) {
JOptionPane.showMessageDialog(null, "Anda Berhasil Login");
this.dispose();
new home().setVisible(true);
}
break;
}
}
答案 1 :(得分:-2)
现在我尝试了这种方法并且它有效,但是如何获取用户名以显示在下一帧?
private void BtnMasukActionPerformed(java.awt.event.ActionEvent evt) {
try{
ResultSet result = stm.executeQuery("select * from kasir where username='" +TxtUser.getText()+"';");
if(result.next()){
if(TxtPass.getText().equals(result.getString("password"))){
JOptionPane.showMessageDialog(null, "Login Berhasil");
this.dispose();
new home().show();
}else{
JOptionPane.showMessageDialog(null, "Password Salah");
TxtPass.setText("");
TxtUser.requestFocus();
}
}else{
JOptionPane.showMessageDialog(null, "User Tidak Ditemukan");
TxtUser.setText("");
TxtPass.setText("");
TxtUser.requestFocus();
}
}catch(HeadlessException | ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null, "Gagal");
}
}