spring jdbctemplate中的java.sql.statement.execute\失败场景

3zwjbxry  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(398)

我正在使用springjdbctemplate类中的org.springframework.jdbc.core.jdbctemplate.batchupdate(string,collection,int,parameteredPreparedStatementSetter)方法来执行批更新。
为了记录批处理操作的结果,此方法返回一个数组,其中包含批处理中每个sql的以下3个状态代码。

java.sql.Statement.EXECUTE_FAILED
java.sql.Statement.SUCCESS_NO_INFO
An Integer value greater than 0 stating no. of records affected.

我试图知道execute\u failed返回的场景。所以,我特意尝试插入一个表中已经存在的记录,以便在数据库上的操作失败并出现主键冲突错误。它失败了,但我收到了异常形式的失败:

java.sql.SQLIntegrityConstraintViolationException.

在这种情况下,我希望返回错误代码。
有没有人知道,当错误代码 java.sql.Statement.EXECUTE_FAILED 是否由jdbctemplate返回?

owfi6suc

owfi6suc1#

这完全取决于您将要使用的相关jdbc连接器实现。检查mariadb(mysql更好的“克隆”)java连接器实现,了解它们如何赋予这些值意义
mariadbstatement-线路1019
mariadbpreparedstatementclient-第180行

相关问题