2017-06-06 43 views
1

,所以我有这个问题不知道如何解决这个问题我想补充的ArrayList数据,如[A,B,C,d,E,F]第一条记录看起来像这样如何将ArrayList数据添加到derby中的相同#中?

"#"|| ID || numbers || section 

`1 || 1 || Abcdef || A1 

这里是我的代码

Statement st = conn.createStatement(); 
String sql = "INSERT INTO LOCATION (ID,LETTERS,SECTION) " 
     + "VALUES (?,?,?)"; 
System.out.println(ch.size()); 
try (PreparedStatement insert = conn.prepareStatement(sql)) { 
     insert.setString(1, "1"); 
     insert.setString(3, "A1"); 
    for (int i = 0; i < ch.size(); i++) { 
     insert.setString(2, ch.get(i).toString()); 
     insert.executeUpdate(); 
    } 
    st.close(); 
    conn.close(); 
} 

回答

1

我觉得有两个问题

  • 你的代码执行的更新(insert.executeUpdate())那么多次为您ch ArrayList的大小
  • 您多次调用了setString为您的ArrayList的长度,但它传递一个字符,而不是你的ArrayList元素的串联

代码的那部分应该是:

String arrayChars = ""; 
    for (int i = 0; i < ch.size(); i++) { 
     arrayChars += ch.get(i).toString(); // If youre using an array of strings theres no need to use .toString() 
    } 
    insert.setString(2, arrayChars); 
    insert.executeUpdate(); 
相关问题