-1

我想比较resultset数据库表中的每一个students,如下所示:

String gender = "";
rs = stat.executeQuery("SELECT gender FROM students;");
while (rs.next()) {
    gender = rs.getString("Gender");
}
if (gender.equals("Male")) {
    //not allowed
} else {
    //allowed  
}

但是,上面的代码不起作用。

4

4 回答 4

2

您需要按照此处所述移动您的循环if else下方:while

    while(rs.next()){
       gender = rs.getString("Gender");
       if(gender.equals("Male")){
           //not allowed
       }else{
           //allowed  
       }
    }
于 2013-10-02T16:57:46.027 回答
1

您的 if 语句在 while 循环之外,您可以在其中获取每个结果。您可能希望将 if-else 语句移到循环中。

于 2013-10-02T16:57:43.117 回答
0

我建议更改查询(如果您的业务案例允许/在这里有意义)以仅获取性别!=男性。这将减少 select 语句的执行并减少不需要的值的循环。

然后按照其他人的建议,将逻辑移动到 while 循环中,以便将逻辑应用于满足条件的所有值。

于 2013-10-02T17:14:01.320 回答
0

我认为问题如下:

1:从该语句中删除倒数第二个分号 rs = stat.executeQuery("SELECT gender FROM students;");

2:您在这里称其为“性别”: rs = stat.executeQuery("SELECT gender FROM students;"); 但是您在这里称其为“性别”(将其更改为“性别”)。性别和性别是两个不同的词。性别 = rs.getString("性别");

于 2013-10-02T17:02:58.317 回答