NetBeans - 按钮选择数据库,如果

时间:2015-05-10 17:08:50

标签: java mysql netbeans xampp

我想在netbeans中的数据库使用按钮中调用id和密码,所以我确实喜欢这个

private void loginActionPerformed(java.awt.event.ActionEvent evt) {                                      
    try {
        String sql="select *from login where ID = '"+id.getText()+"'and Password = '"+String.valueOf(pass.getPassword())+"'and Status ='"+pilih1.getSelectedItem().toString()+"'";
        ResultSet rss1=st.executeQuery(sql);
        if ((rss1.next())&&(pilih1.getSelectedItem().toString() == "Pasien")){
            pasien1 = new pasien1();
            pasien1.setVisible(true);
            this.dispose();
            System.out.println("haha");
        }
        else if ((rss1.next())&&(pilih1.getSelectedItem().toString() == "Dokter")){
            dokter1 = new dokter1();
            dokter1.setVisible(true);
            this.dispose();
        }
        else if ((rss1.next())&&(pilih1.getSelectedItem().toString() == "Staff")){
            staff1 = new staff1();
            staff1.setVisible(true);
            this.dispose();
        }
        else{
            JOptionPane.showMessageDialog(null, "Gagal Login");
        }
    }
    catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Terjadi Kesalahan");
    }

}  

这个源代码可以编译我没有错误 但为什么这个代码只能执行if和else而不能执行else if 给出解决方案。 。

1 个答案:

答案 0 :(得分:0)

这里有两个主要问题:

    Java中的
  1. String是对象,因此需要将它们与equals方法进行比较,而不是==运算符,它检查对象身份,不是平等
  2. 调用ResultSet.next()会使光标前进,因此您应该之前 if-else结构。在当前代码中,每当评估其中一个条件时,光标就会前进,这不是您想要的行为。
  3. 简而言之:

    ResultSet rss1=st.executeQuery(sql);
    boolean hasResults = rss1.next()
    if (hasResults && pilih1.getSelectedItem().toString().equals("Pasien")) {
        pasien1 = new pasien1();
        pasien1.setVisible(true);
        this.dispose();
        System.out.println("haha");
    }
    else if (hasResults && pilih1.getSelectedItem().toString().equals("Dokter")) {
        dokter1 = new dokter1();
        dokter1.setVisible(true);
        this.dispose();
    }
    else if (hasResults && pilih1.getSelectedItem().toString().equals("Staff")){
        staff1 = new staff1();
        staff1.setVisible(true);
        this.dispose();
    }
    else{
        JOptionPane.showMessageDialog(null, "Gagal Login");
    }