2016-05-15 33 views
0

我想在創建INSERT語句插入所有HashMap值之前,將我在ArrayList中的某些數據庫列與我在HashMap中的某些鍵進行比較。如果在數據庫中找到該列,則該鍵只是INSERT語句的一部分。問題是,第一個鍵被輸入到INSERT語句中兩次導致執行失敗。我沒有在這裏提供INSERT語句,或者Im如何獲取值,因爲這不是問題,而是我如何創建標識列名稱的字符串。嵌套循環在java中添加第一個條目兩次

這是代碼。

ResultSet rs2 = st.executeQuery("SELECT * FROM BRAVODay1And2"); 
ResultSetMetaData rsmd2 = rs2.getMetaData(); 
ArrayList<String> che=new ArrayList<String>(); 
for (int i = 1; i <= rsmd2.getColumnCount(); i++) { 
    che.add(rsmd2.getColumnName(i).trim()); 
} 



String prep=""; 
    for (Entry<String, String> entry : mapWholeBRAVO.entrySet()) { 
     String key =entry.getKey().replace(":",""); 
     for (String n:che){ 
      if (n.equals(key)){ 
       prep=prep+key+","; 
      } 
     } 
    } 
+0

如果'key'存在幾個在「che」中,你會在'prep'中插入幾次 – Guillaume

+0

Aha。絕對正確。我沒有意識到,我正在從兩個表格中添加相關的一對一,這兩個表格都包含相同的列名稱。現在已經糾正。 ?作爲答案發布? –

回答

1

答案是我的問題的第一個註釋:

如果key存在多次che,你會在prep插入鑰匙幾次