如何在同一查询中同时向数据库表中插入两个Arraylist值

时间:2012-10-11 09:54:47

标签: java loops insert arraylist

我有两个ArrayList,我必须插入数据库。我有在数据库中插入一个arraylist值的代码...这是我在数据库中插入值的第一个arraylist

for (int j = 0; j < list.size(); j++) {
    int d = (int) list.get(j);
    stmt.executeUpdate("insert into cdrcost  (calldate) value ('" + d+ "'));
}

现在根据我的需要,我有另一个arraylist在我在这里提到的同一个查询中插入数据库。所以我需要任何路径,以便将这两个arraylist的值插入到数据库中。 任何帮助将受到高度赞赏...... Thanx提前...

1 个答案:

答案 0 :(得分:3)

PreparedStatement psth = dbh.prepareStatement("insert into cdrcost  (calldate) value (?)");
for (List<Integer> lst: Arrays.<List<Integer>>asList(list1,list2))
  for (int value: lst) {
    psth.setInt(1,value);
    psth.addBatch();
  }
psth.executeBatch();

如果您需要设置多个值:

PreparedStatement psth = dbh.prepareStatement("insert into cdrcost  (calldate, othercolumn) value (?, ?)");
Iterator<Integer> it1 = list1.iterator();
Iterator<Integer> it2 = list2.iterator();
for (; it1.hasNext() && it2.hashNext();) {
  psth.setInt(1,it1.next());
  psth.setInt(2,it2.next());
  psth.addBatch();
}
psth.executeBatch();