首页 > 解决方案 > If Else - Else 在 Java Netbeans 中无法正常工作

问题描述

我想寻求帮助。我在 if-else 中的 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) {

    }
}        

标签: javanetbeans

解决方案


这是一个非常非常糟糕的做法

 "SELECT * FROM kasir WHERE username='" + TxtUser.getText() + "' AND password='" + TxtPass.getText() + "'";

因为任何人都可以注入一个 sql。检查此图像。改为使用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;
            }
}

推荐阅读