我有一个程序,我必须从数据库中检索数据。我以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))
,但它不起作用....
答案 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)
而不是迭代 - 为查询添加另一个“相等”条件。 它肯定会更容易,更有效率。