Problemas com Autocommit no MySQL!

Galera quando o método rollback do objeto connection é chamado, esse não faz efeito no banco. Abaixo tem um trecho da minha classe de conexão:

[code]private ConnectionDB() throws ClassNotFoundException {
Class.forName(“org.gjt.mm.mysql.Driver”);
}

public Connection getConnection() throws SQLException {
Connection connection = null;
connection = DriverManager.getConnection(“jdbc:mysql://localhost/testeDb?user=root&password=root”);
connection.setAutoCommit(false);
return connection;
}[/code]

Pelo jeito a linha “connection.setAutoCommit(false);” não está fazendo efeito. Alguém sabe se o MySQL suporta transação? Se não suportar, como farei o rollback, em casos de exceção?

A versão que estou usando do MySQL é a 4.1.

Valeu,

César

A versao 4.1 suporta transacoes sim. Provavelmente o erro esta em alguma outra parte do seu codigo.

Rafael

Suas tabelas são MyISAM ou InnoDB? Porque MyISAM não suportam transações.

Valeu galera pela ajuda…minhas tabelas eram MyISAM, mudei para InnoDB e o rollback funcionou…

:smiley: Valeu,

César Lino

MySQL Suporta transacao desde a versao 3.23.34a , com o uso das tabelas do Tipo InnoDB ( ou innobase na epoca ) , ou BDB ( estas desaconselho o uso… ) …

Transacoes , integridade referencial , crash recovery sao coisas q existem no mysql a mais de 4 anos…

e outra… use o Connector/J da MySQL como driver JDBC , baixe ele em http://dev.mysql.com

a classe q vc vai fazer .forName é “com.mysql.jdbc.Driver”

Vai ter uma palestra no FISL 6.0 sobre o mysql na aplicação comercial… se quiser de um pulo lah :slight_smile: fisl.softwarelivre.org/6.0/

Vai ser esta sexta dia 3/6/2005 :slight_smile:

Abraços…

[quote=chun]
e outra… use o Connector/J da MySQL como driver JDBC , baixe ele em http://dev.mysql.com

a classe q vc vai fazer .forName é “com.mysql.jdbc.Driver”[/quote]

A org.gjt ainda pode ser usada - ela eh mantida por questoes de compatibilidade, e simplesmente chama a com.mysql. Mas claro, para codigos novos eh preferivel usar a forma “correta” ja.

Rafael