如何知道所有记录都插入了一个记录未插入批量插入的记录

时间:2014-08-07 08:22:56

标签: java jdbc

我正在插入多个学生列表作为下面的代码

int count = 0;
for (Student st :StudentList) {
    ps.setString(1, l.getId());
    ps.setString(2, l.getName());
    ps.setString(3, l.getRollNo());
    ps.addBatch();
    if (++count % 100 == 0) {
        ps.executeBatch();
    }
}
ps.executeBatch();

我怎么知道所有记录都已成功插入。如果没有插入列表中的哪条记录。

2 个答案:

答案 0 :(得分:3)

executeBatch()方法返回更新计数的数组(int[]),其中包含批处理中每个命令的一个元素。因此,array[i] <= 0表示 i 该命令对数据库没有影响。如果命令 i 是INSERT查询,则表示未插入。

有关此数组内容的更多详细信息,您可以查看executeBatch的Javadoc。

答案 1 :(得分:0)

这是来自executeBatch的javadoc

  

返回的数组的int元素按顺序排列   对应于批次中的命令,这些命令是按照顺序排序的   到它们被添加到批次的顺序。

     

中的元素   executeBatch方法返回的数组可能是其中之一   以下:

     

大于或等于零的数字 - 表示   该命令已成功处理,并且是一个更新计数   数据库中受命令影响的行数   执行