我目前正在尝试将String Array中的值插入到数据库中的三列中 例如将1列入第1列,依此类推。但是在循环中使用批量插入时遇到问题。这是我当前的代码,从我可以收集到的唯一方法是循环遍历每个String Array插入值,除非有更好的方法。
PreparedStatement stmt = conn.prepareStatement("INSERT INTO Scores (Home, Score, Away) VALUES (?, ?, ?)");
String[] List1str = new String[List1.size()];
List1str = List1.toArray(List1str);
String[] List2str = new String[List2.size()];
List2str = List2.toArray(List2str);
String[] List3str = new String[List3.size()];
List3str = List3.toArray(List3str);
for (String s1 : List1str) {
stmt.setString(1, s1);
for (String s2 : List2str) {
stmt.setString(2, s2);
for (String s3 : List3str) {
stmt.setString(3, s3);
stmt.addBatch();
}
}
}
stmt.executeBatch();
答案 0 :(得分:1)
在执行addBatch()之前,您应该绑定所有字符串。 目前你的addBatch()在最后一个嵌套循环中。
如果我们假设所有列表都具有相同的大小,那么您的代码应该遵循:
for (int i=0; i<List1.size(); i++) {
stmt.setString(1, List1[i]);
stmt.setString(2, List2[i]);
stmt.setString(3, List3[i]);
stmt.addBatch();
}
stmt.executeBatch();