2

我有一个程序,我必须从数据库中检索数据。我以字符串的形式检索了它。该字符串包含大约 100 个值。现在我必须将这些值与我给出的 String 的值进行比较。如果值匹配,则它应该执行 if 条件,否则不执行。

这是我的代码...

String str = "9035"; Manually Given by me.
AreaCode = rs.getString("AreaCode"); Retrieved from database with 100 records..

我正在使用if(AreaCode.equals(str)),但它不起作用....

4

3 回答 3

4

调试方法如下:

  String str = "9035";
  while (rs.next()) {
        String areaCode = rs.getString("AreaCode");
        if(str.equals(areaCode)){
           System.out.println("!!!!!!It matched: " + str);
           break;
        } else {
           System.out.println("No match with: " + areaCode);
        }
  }

从您的问题来看,您似乎只是在比较第一条记录,您需要做的是遍历上面的每个结果并进行比较。找到记录后,您将使用 break 语句退出循环。

当然,更好的解决方案是使用包含 areaCode 的 where 子句进行选择,如果你得到一条记录,那么它就在那里,如果没有,你知道它不是。

就像是

select count(0) as tot from your_table_name where AreaCode = '9035'

然后用那个做的 ResultSet

if(rs.getInt("AreaCode") != 0){
  //found the/a match
}
于 2012-10-10T15:53:59.730 回答
2

如果您的 Areacode 包含 100 条记录,我假设 Areacode 是某种集合。您不能将集合与字符串“str”进行比较

如果 Areacode 是一个集合,则遍历该集合,然后将其与“str”进行比较

这可能会帮助您入门。

Iterator itr = Areacode.iterator();
while(itr.hasNext()){
   if(AreaCode.equals(str)){
   //do something
   }
}
于 2012-10-10T15:53:51.490 回答
0

而不是迭代 - 向查询添加另一个“相等”条件。这肯定会更容易和更有效。

于 2012-10-10T16:08:10.527 回答