如何确认 Spring JdbcTemplate 的 batchUpdate 操作成功

3
String[] sql={"insert into customer(name,age) values('v1',21)",
      "insert into customer(name,age) values('v2',22)",
      "insert into customer(name,age) values('v3',23)",
      "insert into customer(name,age) values('v4',24)" };

    jdbcTemplate.batchUpdate(sql);

如何知道此批量更新语句是否执行成功。
1个回答

5
批量更新方法返回一个 int 数组,其中包含每个语句受影响的行数。例如,在您的情况下,可以按如下方式捕获。
int result[] = jdbcTemplate.batchUpdate(sql);

因此,在你的result[0]中,你会得到insert into customer(name,age) values('v1',21)查询的更新计数,

result[1]中,你会得到insert into customer(name,age) values('v2',22)查询的更新计数,以此类推。

如果有任何运行时错误,你将收到BatchUpdateException异常。


所以 'result[0]','result[1]'。对于每个问题的答案都是1 - bhv
由于您的插入查询仅插入1行,因此预计会收到1 - Jayamohan
1
我相信result[0]的结果取决于底层驱动程序。例如,Postgres实现将返回具有特定含义的int数字:int SUCCESS_NO_INFO = -2; 这是java.sql.Statement类。 - evgenii
如果批量更新中的任何一条语句失败,batchUpdate会回滚吗? - Damnik Jain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接