Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Can't call commit when autocommit=true
Enviado por raquel el día 13 de abril de 2006
Hola atodos!!!
en la aplicación que estoy implementando al insertar un nuevo registro en una tabla, me sale el siguiente excepcion:
java.sql.SQLException: Can't call commit when autocommit=true
El caso es que el registro se guarda en la base de datos.
estoy utilizando l entorno de desarrollo eclipse y la base de datos MySQL. Alguien sabe que es lo que pasa?
el código es el siguiente:
public boolean insert(String tabla, String valores){
Statement sentencia;
boolean estado= true;
try{
System.out.println("INSERT INTO " + tabla + " VALUES (" + valores + ")");
sentencia= this.conexion.createStatement();
sentencia.executeUpdate("INSERT INTO " + tabla + " VALUES (" + valores + ")");
this.conexion.commit();
sentencia.close();
}catch (SQLException e){
System.out.println(e.getMessage());
System.out.println(e.toString());
estado= false;
}
return estado;
}
Re: Re: Re: Re: Can't call commit when autocommit=true
Enviado por sphinx101 el día 26 de abril de 2006
Lo que sucede es muy simple te marca esa exeption porque no haz puesto el autocommit a false, esto lo haces de la siguiente manera:
conn.setAutoCommit(false)
y ya con esto de dices al smdb que tu vas a controlar las transacciones y ahora si vas a poner hacer tus propios commit,
recuerda de regresar el autocommit a true despues de que hayas hecho tus acciones, esto porque si no tendrias que controlar todos los commits y rollback que se generen por hacer una simple consulta.