繁体   English   中英

JDBC批处理期间如何获取记录失败

[英]How to fetch the records failed during JDBC Batch Processing

我正在通过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批处理期间失败的记录。

您可以捕获具有方法int[] getUpdateCounts() BatchUpdateException ,该方法返回一个数组,该数组包含受每个批处理语句 添加到 批处理中的顺序影响的行数。

但是这里重要的是,如果单个批处理语句更新的行多,则无法确切知道该语句影响了哪些行以及它们是否甚至存在于表中(对于insert或merge语句)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM