Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

"Setar" autocommit no DAO?

Bom dia a todos!

Estou com uma grande dúvida, se alguém puder me ajudar serei muito grato!

Vamos lá, eu criei meu ProdutoDAO e nele tenho as operações(salvar, listar, excluir) e também tenho uma outra classe com um método main para testar esse DAO (vamos chamá-la de 'classe principal' classe essa que realiza a conexão com o banco seguindo o padrão das aulas - já irei dizer que não fiz a cagada de fazer a conexão no DAO "kkkkkk"). Mas oq acontece é o seguinte: eu fiz uns testes e "setei" autocommit(false) no DAO e eu reparei que funciona como se estivesse na classe principal, a minha dúvida é: Quando eu "seto" con.autoCommit(false) no DAO ele muda a variável con (de Connection) que também é usada na classe principal? Ou seja, ele muda diretamente na memória e por isso também é alterada na classe principal? Mesmo modificando no DAO? Não sei se fui muito claro! Ah, e meu DAO recebe a con (Connection) feita na classe principal de acordo com as aulas!

Grato desde já!

2 respostas
solução!

Bom dia Tiago,

Alguns bancos aceitam realizarmos um insert, por exemplo e ao digitarmos o comando direto e ele já faz a operação, é o caso do mysql. Já o Oracle por exemplo, além de darmos o insert precisamos commitar. Por padrão o mysql não precisa desse commit após as instruções, mas se colocarmos conn.setAutoCommit(false), mudamos a forma quer o mysql vai trabalhar, assim precisamos dar o conn.commit() após o execute()

Huuuum, Entendi! Muito Obrigado. :D