2016-05-15 4 views
0

HashMapの値をすべて挿入するINSERT文を作成する前に、ArrayListのあるデータベースの列とHashMapのあるデータベースの列を比較しようとしています。このキーは、列がデータベース内にある場合にのみINSERTステートメントの一部です。問題は、最初のキーがINSERTステートメントに2回入力されて実行が失敗することです。私はここでINSERT文を提供していませんし、Imが値を取得する方法は問題ではありません。列名を識別する文字列を作成する方法です。ネストされたループでJavaで最初のエントリを2回追加する

ここにコードがあります。

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

を挿入します'che'の時に、' prep'にキーを数回挿入します。 – Guillaume

+0

Aha。絶対的に正しい。私は、同じ列名を持つ1対1の2つのテーブルからcheを追加していることに気づいていませんでした。今すぐ修正されました。 ?回答として投稿しますか? –

答えて

1

答えは質問の私の最初のコメントである:

keyche中に存在するいくつかの回であればkey`がいくつか存在している `場合、あなたはprepにキーを数回

関連する問題