java - NetBeans - 按钮选择数据库否则如果

标签 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 给出解决方案。 . .

最佳答案

这里有两个主要问题:

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

简而言之:

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");
}

关于java - NetBeans - 按钮选择数据库否则如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30154228/

相关文章:

java - PDF人群 'Missing artifact'

java - 使用 Spark 从 HDFS 到 Oracle BLOB 的 CSV 文件

java - Lucene:前缀查询不适用于 WhitespaceAnalyzer

Mysql查询满足以下要求

mysql - 启动 spark sql 和 thrift server 时在类路径上找不到 com.mysql.jdbc.Driver

java - 在java中将一个数组复制到另一个数组中。数组存储异常

mysql - 使用日期序列化查询

java - 无法使用 Netbeans 连接到 heroku postgres 数据库

performance - 从 NetBeans 到 Glassfish 的部署非常慢

netbeans - 如何在netbeans中调试JBOSS应用程序?