我正在使用 postgres 9.3-1100-jdbc41 JDBC4 驱动程序进行批量插入。
根据 JDBC 规范,由应用程序来禁用自动提交以及提交或回滚事务。
就我而言,我没有使用任何事务(即自动提交为真),但如果批处理中的一个插入失败,插入仍然会回滚。
根据 JDBC 规范“如果批量更新中的某个命令未能正确执行,则此方法会抛出 BatchUpdateException,并且 JDBC 驱动程序可能会或可能不会继续处理批处理中的剩余命令。”。这里并没有说之前执行的命令将被回滚。
我的理解错了吗?如果不是,为什么驱动程序会以这种方式行事,如果是,那么根据规范,正确的行为是什么。