/ / java.sql.Statement.EXECUTE_FAILED Spring JdbcTemplateのシナリオ - java、spring、spring-jdbc、jdbctemplate

java.sql.Statement.EXECUTE_FAILED SpringのシナリオJdbcTemplate - java、spring、spring-jdbc、jdbctemplate

バッチ更新を実行するために、Spring jdbcTemplateクラスのorg.springframework.jdbc.core.JdbcTemplate.batchUpdate(String、Collection、int、ParameterizedPreparedStatementSetter)メソッドを利用しています。

バッチ操作の結果に注意するために、このメソッドはバッチ内の各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_FAILEDのときにシナリオを知りました返されます。そのため、テーブルにすでに存在するレコードを意図的に挿入して、DBで主キー違反エラーが発生して操作が失敗するようにしました。それは失敗しました、しかし私は例外の形で失敗を受けました:

java.sql.SQLIntegrityConstraintViolationException.

この場合、エラーコードが返されることを期待していました。

ここで誰もが知っていますか、エラーコードが java.sql.Statement.EXECUTE_FAILED jdbctemplateによって返される?

回答:

回答№1は0

これは、使用するJDBCコネクタの実装に完全に依存します。 チェックアウト MariaDB(mysqlのはるかに優れた "CLONE")Javaコネクタ それらがこれらの値にどのように意味を与えるかに関する実装