1
respuesta

Dudas de si se requiere o no rollback cuando autocommit esta desactivado

En la clase 8 Manejando el commit y el rollback.

Dentro de lo que es el metodo guardar en el extracto del try:

try{
            do{
                int cantidadParaGuardar=Math.min(cantidad, maximoCantidad);
                ejecutaRegistro(nombre, descripcion, cantidadParaGuardar, statement);
                cantidad-=maximoCantidad;
            }while(cantidad>0);

            con.commit();

        }catch(Exception e){
            con.rollback();
        }

Obtengo el mismo resultado que si no hubiera puesto rollback(), ya que el autocommit está desactivado, y si hay error alguno, nunca llegaría a con.commit(). Mi pregunta es si de verdad se necesita poner el rollback(), al menos en este caso... Y por qué?

1 respuesta

¡Hola Paulo!

En este caso, aunque el autocommit está desactivado, es recomendable utilizar el rollback() en caso de que ocurra algún error en el proceso de guardado.

La razón es que, aunque no se haya ejecutado el commit(), es posible que se hayan realizado algunas operaciones en la base de datos antes de que ocurra el error. Si no se utiliza el rollback(), estas operaciones quedarán guardadas en la base de datos, lo que puede generar inconsistencias en los datos.

Por lo tanto, es recomendable utilizar el rollback() para asegurarse de que todas las operaciones realizadas en la base de datos durante el proceso de guardado sean deshechas en caso de que ocurra algún error.

¡Espero haber ayudado y buenos estudios!