我正在插入多个学生列表作为下面的代码
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();
我怎么知道所有记录都已成功插入。如果没有插入列表中的哪条记录。
答案 0 :(得分:3)
executeBatch()
方法返回更新计数的数组(int[]
),其中包含批处理中每个命令的一个元素。因此,array[i] <= 0
表示 i 该命令对数据库没有影响。如果命令 i 是INSERT查询,则表示未插入。
有关此数组内容的更多详细信息,您可以查看executeBatch的Javadoc。
答案 1 :(得分:0)
这是来自executeBatch的javadoc:
返回的数组的int元素按顺序排列 对应于批次中的命令,这些命令是按照顺序排序的 到它们被添加到批次的顺序。
中的元素 executeBatch方法返回的数组可能是其中之一 以下:
大于或等于零的数字 - 表示 该命令已成功处理,并且是一个更新计数 数据库中受命令影响的行数 执行