NetBeans - 按钮选择数据库,否则

Posted

技术标签:

【中文标题】NetBeans - 按钮选择数据库,否则【英文标题】:NetBeans - button select database else if 【发布时间】:2015-07-21 03:56:11 【问题描述】:

我想在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 给出解决方案。 . .

【问题讨论】:

google 用于 java 中的字符串比较 【参考方案1】:

这里有两个主要问题:

    Java 中的Strings 是对象,因此需要与equals 方法进行比较,而不是== 运算符,它检查对象identity,而不是equality . 调用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");

【讨论】:

以上是关于NetBeans - 按钮选择数据库,否则的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Netbeans操作MySQL数据库

如何在NetBeans中连接MySQL数据库

使用 Javafx(netbeans) 在 SQLITE 数据库中插入 PDF 或任何类型的文件

如何在netbeans java中将图像插入mysql数据库

关于使按钮在 Netbeans 的 GUI 编辑器中工作的 JDBC 到 JTable 输出查询

除非快速选择所有单元格,否则限制表格视图