Java:BatchUpdateException

De W3API
Saltar a: navegación, buscar

Contenido

Descripcion

Subclase de SQLException que es lanzada durante una operación de batch update en el caso de que alguna de las operaciones realizadas por batch falle.

En el caso de que el Driver de la base de datos continue con la ejecución se devolverá un array que contenga la información de los registros que han fallado y los que se han ejecutado correctamente.

Sintaxis

public class BatchUpdateException extends SQLException

Ejemplo

public class ErrorBatchUpdate {
  public static void main(String[] args) throws SQLException {

    Connection con = null;
    String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";

    try {
      con = DriverManager.getConnection(sURL,"root","");
      con.setAutoCommit(false);
	      
      PreparedStatement stmt = con.prepareStatement("CREATE TABLE temporal (numero TINYINT(1) NOT NULL)");  
      stmt.execute(); 
      stmt.close();
      
      stmt = con.prepareStatement("CREATE UNIQUE INDEX indicenumero ON temporal(numero)");  
      stmt.execute(); 
      stmt.close();	     

      int[] valores = {1,2,2,3,1,4,1,2};	      
	      
      try {       
        PreparedStatement carga = con.prepareStatement("INSERT INTO temporal VALUES (?)");	    	 
   	  
        for (int x=0;x<valores.length;x++) {
          carga.setInt(1, valores[x]);
          carga.addBatch();
        }
        carga.executeBatch();

      } catch (BatchUpdateException bue) {
        int[] errores = bue.getUpdateCounts();
        System.out.println("--Errores en el Batch--\n");
   	  
        for (int x=0;x<errores.length;x++) {
          if (errores[x] < 0) 
            System.out.print("Error insertando el valor " + valores[x] + " de la posición " + x + "\n");
        }		    	  	    	 	    	  
      }

      con.commit();
 
      stmt = con.prepareStatement("DROP TABLE temporal");  
      stmt.execute(); 
      stmt.close();
   
    } catch (SQLException sqle) { 
      System.out.println(sqle.getMessage());
      con.rollback();	      
    } finally {
      if (con!=null) con.close();    	      
    } 
   }
 }

Campos

Constuctores

Metodos

Líneas de Código

Herramientas personales
Espacios de nombres
Variantes
Acciones
API
Navegación
webs
Herramientas