Autocommit ou commit / rollback?

1 resposta
V

Galera, o Autocommit tem o rollback embutido??
3 dúvidas:

  1. Se eu tiver uma persistência com gravação em mais de uma tabela, se der erro na última posso dá o rollback? voltará todas as outras gravações que fiz ao banco mas sem o commit???

  2. como o rollback só funciona com o autocommit desligado, se eu deixar o autocommit ligado e não usar rollback, ele fará o acerto para mim na situação 1? de dá o rollback sozinho?

  3. se for usar o rollback é bom que se utilize nos blocos catch???

1 Resposta

S

“vitorkgb”:
Galera, o Autocommit tem o rollback embutido??

Não. Autocommit significa: “não quero usar transações”

Contando que não uses autocomit sim.

Não. As operações commit e rollback de javax.sql.Connection são para ser usadas explicitamente. Quando não queres usar o commit explicitamente, usas autocommit ( que é o default) , mas nesse caso também não é possivel usar roolback.


3. se for usar o rollback é bom que se utilize nos blocos catch???

É a única forma de usar roolback.

Connection con = ... // obtem connection
con.setAutoCommit(false);

try {
  // faz alguma coisa com con

  // se tudo der certo as operações são aceites
   con.commit();
} catch (Exception e){
 // se algo der errado, tudo é revertido
   con.roolback();
} finally {
 // independenmente se dar certo ou não, a conexão tem que ser fechada
  con.close()
}
Criado 1 de fevereiro de 2007
Ultima resposta 1 de fev. de 2007
Respostas 1
Participantes 2