我正在使用Spring JDBCTemplate batchUpdate在批处理中插入数据。我想验证数据是否已成功插入。JDBCTemplate batchUpdate 返回一个 int[][],那么验证数据是否已插入的正确方法是什么?
此链接显示"所有批处理更新方法都返回一个 int 数组,其中包含每个批处理条目的受影响行数。此计数由 JDBC 驱动程序报告,并且并不总是可用,在这种情况下,JDBC 驱动程序仅返回 -2 值"。我无法理解在这里返回 -2 值的意义。这是否意味着插入不成功?
-2 并不一定意味着错误,它可能如前所述,受影响的行计数的情况不可用。
编辑
-2 是 Statement.SUCCESS_NO_INFO 的值(而 EXECUTE_FAILED 是 -3)。因此,除非驱动程序不符合 JDBC 规范,否则 -2 明确表示成功
编辑结束
错误通过批处理更新异常报告
通常,如果您在批处理脚本中运行 N 个查询,您将在结果中获得每个查询 i 的更新计数:
int result[] = jdbcTemplate.batchUpdate(sql);
所以:
result[0]
将保存第一个查询的更新计数,
result[1]
将保存第二个查询等的更新计数。