Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Estou com dúvida no curso de JDBC e banco de dados em Java, no exercício 5 do capítulo Transações: commit e rollback.

Fiz o código exatamente como nos exercício e percebi que com ou sem o rollback os dados não são persistidos de qualquer maneira. Como o meu commit é realizado após a execução dos dois métodos adiciona, o segundo método ja lança uma exceção impedindo que seja executado o commit, ficando dessa maneira inútil o uso do rollback.

1 resposta
solução

Olá Thiago

Esse comportamento que você observou dependende da implementação do jdbc utilizada no projeto. Em alguns bancos de dados, quando fechamos a conexão enquanto a transação está aberta, o driver faz um rollback automático, porém em outros, o driver faz um commit.

Então para termos um comportamento consistente, é importante sempre colocar o try/catch/finally fazendo o rollback da transação