我正在通过 JDBC 批处理执行一组 SQL 语句。 如何获取批处理失败的记录。
我能够记录成功和失败计数。但无法获取失败的记录。
Statement statement = null;
try {
statement = connection.createStatement();
for (String insertQuery : insertQuerys) {
statement.addBatch(insertQuery);
}
statement.executeBatch();
} catch (Exception e) {
logger.info("Error : " + e);
} finally {
try {
statement.close();
} catch (SQLException e1) {
logger.info("Error : " + e1);
}
}
我期望在 JDBC 批处理过程中失败的记录。
最佳答案
你可以捕获BatchUpdateException其中的方法 int[] getUpdateCounts()
返回一个数组,其中包含受每个批处理语句影响的行数,按照它们添加到批处理的顺序强>.
但这里重要的是,如果您的单个批处理语句更新多于一行,您无法准确判断哪些行受到该语句的影响,以及它们是否存在于表中(在插入或合并语句的情况下) .
关于java - 如何在 JDBC 批处理过程中获取失败的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55392183/