En general, debe usar Connection.commit()
y no Connection.setAutoCommit(true)
para confirmar una transacción, a menos que desee cambiar de usar la transacción al modelo de 'transacción por declaración' de autoCommit.
Dicho esto, llamar a Connection.setAutoCommit(true)
while en una transacción confirmará la transacción (si el controlador cumple con la sección 10.1.1 de la especificación JDBC 4.1). Pero realmente solo debería hacer eso si tiene la intención de permanecer en autoCommit después de eso, ya que habilitar / deshabilitar autoCommit en una conexión puede tener una mayor sobrecarga en una conexión que simplemente confirmar (por ejemplo, porque necesita cambiar entre administradores de transacciones, hacer verificaciones adicionales , etc.).
También debe usar Connection.commit()
y no usar el comando SQL nativo COMMIT
. Como se detalla en la documentación de conexión:
La cosa es que comandos como commit()
y setAutoCommit(boolean)
puede hacer más trabajo en segundo plano, como cerrar ResultSets
y cerrar o restablecer Statements
. Usando el comando SQL COMMIT
omitirá esto y potencialmente llevará su controlador/conexión a un estado incorrecto.