Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/03/2011, 18:22
javiDP
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: ROLLBACK en Oracle desde Java

Java, al crear la conexion, crea un tipo de transaccion que autoconfirma al ejecutar el statement. Para deshabilitarlo, una vez que has establecido la conexion has de llamar al metodo conexion.setAutoCommit(false). Despues, en el momento que quieras hacer rollback, basta con llamar al metodo conexion.rollback(). Eso si, debes hacer un conexion.commit() para que se confirme la sentencia.

Ejemplo:
Código Java:
Ver original
  1. boolean quieroconfirmar=false;
  2. try{
  3. DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
  4.  
  5. Connection conexion = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:dbname", "user", "password");
  6. conexion.setAutoCommit(false);
  7.  
  8. Statement stmt = conn.createStatement ();
  9.  
  10. st.executeUpdate("insert into table_name values(xxxx, 'xxx');
  11.  
  12. if(quieroconfirmar==false){
  13. conexion.rollback();
  14. }else{
  15. conexion.commit();
  16. }
  17. st.close();
  18. conexion.close();
  19. }catch(SQLException sqle){
  20. System.out.println(sqle);
  21. }

El ejemplo de arriba insertaria unos datos en una tabla, y dependiendo del valor de quieroconfirmar, los confirmaria o haria un rollback.

Espero que te haya servido, Un saludo!

Última edición por javiDP; 22/03/2011 a las 18:32