2012-10-10 84 views
1

我有一個程序,我不得不從數據庫中檢索數據定義的字符串值的字符串值。我已經以String的形式檢索它。該字符串包含大約100個值。現在我必須將這些值與我給出的字符串的值進行比較。如果這些值匹配,那麼它應該執行if條件,否則不應該。如何比較從數據庫中檢索到計劃

這裏是我的代碼...

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

我使用if(AreaCode.equals(str)),但它不工作....

+0

您返回的字符串包含100個值你想檢查遏制? 'AreaCode.contains(str)'.. –

+2

也許是因爲AreaCode是一個複雜類型而不是變量名? –

+0

那麼您可以通過'rs.getString(「AREACODE」)返回的確切值' –

回答

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語句退出循環。

當然是一個更好的解決方案是使用WHERE子句包括AREACODE做一個選擇,如果你得到一個記錄當時就在那裏,如果沒有,你知道這是不是。

喜歡的東西

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

,然後與該ResultSet中做

if(rs.getInt("AreaCode") != 0){ 
    //found the/a match 
} 
2

如果您AREACODE包含100條記錄,AREACODE是一些集合類,我承擔。你不能比較的集合與字符串「STR」

如果AREACODE是一個集合,然後遍歷集合,然後將其與「STR」

這比較可能會幫助您開始。

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

Areacode.iterator沒有發生..giving錯誤.. – Ram

0

而是迭代的 - 添加其他 '平等' 的條件查詢。 它肯定會更容易,更高效。

+0

爵士將üPLZ指定我如何添加其他同等條件... – Ram

+0

字符串SQL =「{您的SQL}和AREA_CODE = 9035」 – urir