2.3. Transacciones

2.3. Transacciones Carlos 25 Noviembre, 2009 - 10:38

 La API JDBC incluye soporte para transacciones, de forma que se pueda deshacer un conjunto de operaciones relacionadas en caso necesario. Este compor- tamiento es responsabilidad de la clase Connection.

 

Por omisión, cada sentencia se ejecuta en el momento en que se solicita y no se puede deshacer. Podemos cambiar este comportamiento con la operación siguiente:

 

conexion.setAutoCommit(false);

 

Después de esta operación, es necesario llamar a commit() para que todas las sentencias SQL pendientes se hagan definitivas:

 

 

sentencia.executeUpdate(...);
...
  sentencia.executeUpdate(...);
...
conexion.commit(); // Se hacen permanentes las dos actualizaciones anteriores

 

En caso contrario, desharemos todas las actualizaciones después del último commit():

 

sentencia.executeUpdate(...);
...
  sentencia.executeUpdate(...);
...
sentencia.executeUpdate(...);
...
conexion.rollback(); // Cancela las tres últimas actualizaciones