java - 批量插入如何知道所有记录都插入了哪条记录没有插入

标签 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();

如何知道所有记录都插入成功了。如果不是,则不插入列表中的哪条记录。

最佳答案

executeBatch()方法返回更新计数数组 ( int[] ),其中包含批处理中每个命令的一个元素。所以,array[i] <= 0表示第 i 个命令对数据库没有影响。如果命令 i 是一个 INSERT 查询,那么这意味着它没有被插入。

关于this数组内容的更多细节,可以查看executeBatch的Javadoc .

关于java - 批量插入如何知道所有记录都插入了哪条记录没有插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177556/

相关文章:

java - 由于 androidx drawerlayout 导致的错误

java - Hsqldb - 可能的准备语句内存泄漏

java - JdbcTemplate的queryForList有什么限制吗?

Azure SQL 数据仓库 JDBC 连接

java - 我们可以使用一个 RowMapper 对象而不是每次都创建对象来获取结果吗?

javascript - 如何获得数学函数的真实值

java - 在运行时访问 OSGi 包中的 pom 属性

java - 如何在 Vaadin Spring Boot Web 应用程序中创建图像幻灯片?

java - 一台 IBM Websphere 服务器上有多个版本

java - JDBC 结果集行为异常