在我使用 JDBC 处理超过 40,000 条数据记录的过程中。为了提高性能,我使用 PreparedStatement 和批量更新。
需要建议来处理批量更新中的异常吗?如何处理异常,处理40,000条记录中的5001条记录时如何知道发生了异常?
提前致谢
在我使用 JDBC 处理超过 40,000 条数据记录的过程中。为了提高性能,我使用 PreparedStatement 和批量更新。
需要建议来处理批量更新中的异常吗?如何处理异常,处理40,000条记录中的5001条记录时如何知道发生了异常?
提前致谢
您可以使用 BatchUpdateException。请参阅以下代码。你可以在这里找出错误。
try {
// statements related to batch updates....
} catch (BatchUpdateException be) {
//handle batch update exception
be.printStackTrace();
int[] counts = be.getUpdateCounts();
for (int i=0; i<counts.length; i++) {
System.out.println("Statement["+i+"] :"+counts[i]);
}
}
使用 BatchUpdateException 处理批量更新的异常
通过使用 getCause() 和 getNextException() 分析异常,您最终会发现一个 JDBCException/SQLException。
现在,向上转换到 congrete database-depend-exception,当然,您会找到 congrete 问题/congrete 索引的标识符(即 nr 5001)。
还可以尝试具有更高 jdbc 版本(即 jdbc4)的不同 JDBC 驱动程序。