我正在使用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返回?
1条答案
按热度按时间owfi6suc1#
这完全取决于您将要使用的相关jdbc连接器实现。检查mariadb(mysql更好的“克隆”)java连接器实现,了解它们如何赋予这些值意义
mariadbstatement-线路1019
mariadbpreparedstatementclient-第180行