GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Transação(START TRANSACTION, COMMIT, ROLLBACK) no MySQL + Java


#1

Olá pessoal,
eu estou precisando fazer uma transação
no MySQL, e não estou sabendo como que
eu devo fazer, será que alguém poderia me
dar uma ajuda?

Preciso fazer uma transação para o meu código abaixo
se acontecer algum caso onde eu não consiga
inserir um produtor um usuário também não
seja inserido na Tabela de usuário.

/*** Cadastro de Técnico ***/            
            usuario.setLogin("tecnico10");
            usuario.setPassword("2223");
            usuario.setTipoUsuario(TipoUsuario.TECNICO);            
            usuarioDao.salvarUsuarioSistema(usuario);
            tecnico.setIdUsuario(usuarioDao.getId("tecnico10"));
            tecnico.setNome("Antônio Carlos Moraes Souza");
            tecnico.setTelefone("(11)2653-9874");
            tecnico.setCelular("(11)9152-2367");
            tecnico.setEmail("antonio2345@gmail.com");
            tecnicoDao.salvarTecnico(tecnico);
            System.out.println("Técnico Cadastrado com Sucesso!");

Será alguém pode me dar uma ajuda?

[]'s.


#2

Primeira coisa você tem que verificar se suas tabelas estão como InnoDbB, pois este mecanismo permite trabalhar com transações em MYSQL.

"O InnoDB prove o MySQL com um mecanismo de armazenamento seguro com transações
(compatível com ACID) com commit, rollback, e recuperação em caso de falhas ... "

Depois disso é fácil, se você estiver JDBC puro, fica +/- assim

Connection con; // Conexão com o B.D
conn.setAutoCommit(false);
try {
// Bloco de Código
con.commit(); // Se estiver tudo ok, grava as alterações no B.D.
catch (Exception e) {
con.rollback(); // Descarta todas alterações, feitas desde o inicio da transação
System.out.println("Falha ao gravar dados: " + e.toString());
}
conn.setAutoCommit(true);

#3

Jóia mate42?
Muito OBRIGADO pela sua
ajuda eu vou fazer os teste
aqui agora.

Muito obrigado mesmo. :smiley:

[]'s.


#4