【问题标题】:How can I compare database from specified text如何比较指定文本中的数据库
【发布时间】:2013-10-02 16:55:46
【问题描述】:

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

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

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

【问题讨论】:

  • 我认为您发布的代码不足以让我们为您提供准确的答案。
  • 在SQL中过滤不是最好的吗?从 Gender != 'Male'; 的学生中选择性别

标签: java sql compare


【解决方案1】:

您需要将if else 移动到while 循环下,如此处所述:

    while(rs.next()){
       gender = rs.getString("Gender");
       if(gender.equals("Male")){
           //not allowed
       }else{
           //allowed  
       }
    }

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我认为问题如下:

      1:从该语句中删除倒数第二个分号 rs = stat.executeQuery("从学生中选择性别;");

      2:您在这里称其为“性别”: rs = stat.executeQuery("从学生中选择性别;"); 但是您在这里称其为“性别”(将其更改为“性别”)。性别和性别是两个不同的词。 性别 = rs.getString("性别");

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        • != 是什么意思?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-03
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        相关资源
        最近更新 更多