我使用Spring JDBCTemplate batchUpdate批量插入数据。我想验证数据是否已成功插入。 JDBCTemplate batchUpdate返回一个int [] [],这是验证数据是否插入的正确方法?
这个link说“所有批处理更新方法返回一个int数组,其中包含每个批处理条目的受影响行数。这个计数由JDBC驱动程序报告,并且它并不总是可用,在这种情况下JDBC驱动程序只是返回-2值“。我无法理解在这里返回-2值的重要性。这是否意味着插入不成功?
答案 0 :(得分:11)
-2并不一定意味着错误,可能如上所述,受影响的行计数的情况不可用。
修改强>
-2是Statement.SUCCESS_NO_INFO的值(而EXECUTE_FAILED是-3)。因此,除非驱动程序不符合JDBC规范,否则-2明确表示成功
END OF EDIT
报告通常,如果您在批处理脚本中运行N个查询,您将在结果中获得每个查询的更新次数:
int result[] = jdbcTemplate.batchUpdate(sql);
这样:
result[0]
将保留第一个查询的更新计数
result[1]
将保存第二个查询等的更新计数。