java中与字符串的结果集数据比较

java中与字符串的结果集数据比较,java,db2,Java,Db2,我试图在我的JavaGUI程序中创建一个条件语句。我已经能够与我的数据库db2建立连接,并且能够执行查询以获得结果集 问题是,当我使用表数据与条件语句(if)中的字符串进行比较时,它总是返回false并转到else子句,即使resultset中的数据与我比较它的字符串相同 我已经写了下面的代码 String query3 ="select * from module where uname='ADMIN' and modulename='SETADMIN'"; P

我试图在我的JavaGUI程序中创建一个条件语句。我已经能够与我的数据库db2建立连接,并且能够执行查询以获得结果集

问题是,当我使用表数据与条件语句(if)中的字符串进行比较时,它总是返回false并转到else子句,即使resultset中的数据与我比较它的字符串相同

我已经写了下面的代码

String query3 ="select * from module where uname='ADMIN' and modulename='SETADMIN'";
                PreparedStatement pst2 = conn.prepareStatement(query3);
                ResultSet rs2=pst2.executeQuery();
                rs2.next();
                if (rs2.getString(1)=="ADMIN"){
                    JOptionPane.showMessageDialog(null, "if statement working");
                }
                else{
                    JOptionPane.showMessageDialog(null, "if statement not working");
                }
查询将获得的结果集如下所示

**UNAME   MODULENAME    CANADD   CANEDIT   CANDELETE**
  ADMIN     SETADMIN       T        T           T
除了if子句总是返回false并直接转到else子句之外,程序中的其他所有内容似乎都很好

任何帮助都将不胜感激:)

您可以使用

rs2.getString(1).equals("ADMIN")

后者更好,因为
getString
可能返回null。

如果(rs2.getString(1)=“ADMIN”){并且由于比较引用而不是对象的内容而不起作用,这是错误的


如果您想了解为什么“==”不是比较对象的正确方法,请执行
“ADMIN”.equals(rs2.getString(1))
,并查看此选项…

如果您想比较一个字符串与另一个字符串,那么如果其他函数总是返回false,请始终使用此选项:

if (rs2.getString(1).compareTo("ADMIN")==0){
                JOptionPane.showMessageDialog(null, "if statement working");
            }

尝试If(RS2.GETString(1)。等于(“admin”)感谢您的帮助,而不是一个复制品……另一个要考虑的是DB2中的数据可以是一个固定长度的字符数据而不是一个可变长度字符串。您可能会返回“<代码>管理员”< /代码>,而不是<代码>“管理员”< /代码>。
if (rs2.getString(1).compareTo("ADMIN")==0){
                JOptionPane.showMessageDialog(null, "if statement working");
            }