如何将从数据库中检索的字符串值与在程序中定义的字符串值进行比较

时间:2012-10-10 15:36:25

标签: java mysql string comparison

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

这是我的代码......

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

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

3 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:2)

如果你的Areacode包含100条记录,我认为Areacode是某种集合。您无法将字符串“str”

与集合进行比较

如果Areacode是一个集合,则迭代该集合,然后将其与'str'进行比较

这可能会帮助您入门。

Iterator itr = Areacode.iterator();
while(itr.hasNext()){
   if(AreaCode.equals(str)){
   //do something
   }
}

答案 2 :(得分:0)

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