验证spring JDBC批量更新是否成功

时间:2013-10-07 13:06:07

标签: java jdbc spring-jdbc batch-updates

我使用Spring JDBCTemplate batchUpdate批量插入数据。我想验证数据是否已成功插入。 JDBCTemplate batchUpdate返回一个int [] [],这是验证数据是否插入的正确方法?

这个link说“所有批处理更新方法返回一个int数组,其中包含每个批处理条目的受影响行数。这个计数由JDBC驱动程序报告,并且它并不总是可用,在这种情况下JDBC驱动程序只是返回-2值“。我无法理解在这里返回-2值的重要性。这是否意味着插入不成功?

1 个答案:

答案 0 :(得分:11)

-2并不一定意味着错误,可能如上所述,受影响的行计数的情况不可用。

修改

-2是Statement.SUCCESS_NO_INFO的值(而EXECUTE_FAILED是-3)。因此,除非驱动程序不符合JDBC规范,否则-2明确表示成功

END OF EDIT

错误通过BatchUpdateException

报告

通常,如果您在批处理脚本中运行N个查询,您将在结果中获得每个查询的更新次数:

int result[] = jdbcTemplate.batchUpdate(sql);

这样:

result[0]

将保留第一个查询的更新计数

result[1]

将保存第二个查询等的更新计数。