English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ejemplo de JDBC setSavepoint, releaseSavepoint

A continuación, se muestra un ejemplo, el cual utilizasetSavepointyrollbackSe describe en el tutorial de transacciones.

Este código de ejemplo se ha escrito basándose en la configuración del entorno y la base de datos de los capítulos anteriores.

Copie y pegue el siguiente ejemplo en JDBCExample.java, compárelo y ejecute:}

//Paso1Importar los paquetes necesarios
import java.sql.*;
public class JDBCExample {
   // Nombre del controlador JDBC y URL de la base de datos
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP
   //  Credenciales de la base de datos
   static final String USER = "usuario";
   static final String PASS = "contraseña";
   
public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //Paso2Registrar el controlador JDBC
      Class.forName("com.mysql.jdbc.Driver");
      //Paso3Conectar
      System.out.println("Conectando a la base de datos...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);
      //Paso4Establecer el commit automático en false.
      conn.setAutoCommit(false);
      //Paso5Ejecutar la consulta para eliminar la declaración
      // Parámetros obligatorios del ejemplo RS.
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
	  //Paso6:Ahora liste todos los registros disponibles.
      String sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);
      System.out.println("Listando conjunto de resultados para referencia....");
      printRs(rs);
      // Paso7Eliminar ID mayor que104de la línea
      // Pero antes de hacer esto, primero debe guardar un punto.
      Punto de salvaguarda punto de salvaguarda1 = conn.setSavepoint("ROWS_DELETED_1");
      System.out.println("Eliminando fila....");
      String SQL = "DELETE FROM Employees " +
                   "WHERE ID = 110";
      stmt.executeUpdate(SQL);  
      // ¡Mal... Eliminamos al empleado incorrecto!
      //Paso8En el punto de salvaguarda2regrese los cambios.
      conn.rollback(savepoint1);
    // Paso9Eliminar ID mayor que104de la línea
      // Pero antes de hacer esto, primero debe guardar un punto.
      Punto de salvaguarda punto de salvaguarda2 = conn.setSavepoint("ROWS_DELETED_2");
      System.out.println("Eliminando fila....");
      SQL = "DELETE FROM Employees" +
                   "WHERE ID = 95";
      stmt.executeUpdate(SQL);  
	  //Paso10:Ahora liste todos los registros disponibles.
      sql = "SELECT id, primer, último, edad FROM Employees";
      rs = stmt.executeQuery(sql);
      System.out.println("Listando conjunto de resultados para referencia....");
      printRs(rs);
      //Paso10:Limpieza del entorno
      rs.close();
      stmt.close();
      conn.close();
   }catch(SQLException se){
      //Manejo de errores JDBC
      se.printStackTrace();
      // Si hay errores, revertir los cambios.
      System.out.println("Revertiendo datos aquí....");
	  try{
		 if(conn!=null)
            conn.rollback();
      }catch(SQLException se2}
         se2.printStackTrace();
      }//Finalizar try
   }catch(Exception e){
      //Manejo de errores de Class.forName
      e.printStackTrace();
   }finally{
      //Para cerrar recursos
      try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2}
      
      }
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }
   }//Finalizar try
   System.out.println("¡Adiós!");
}//Finalizar main
   public static void printRs(ResultSet rs) throws SQLException{
      //Asegúrate de que comenzamos en la primera fila
      rs.beforeFirst();
      while(rs.next()){
         //Búsqueda por nombre de columna
         int id = rs.getInt("id");
         int edad = rs.getInt("edad");
         String primer = rs.getString("primer");
         String último = rs.getString("ultimo");
         //Mostrar valor
         System.out.print("ID: " + id);
         System.out.print(", Edad: " + age);
         System.out.print(", Primero: " + first);
         System.out.println(", Apellido: " + last);
     }
     System.out.println();
   }//Final de printRs()
}//Final de JDBCExample

Ahora, compilamos el ejemplo anterior de la siguiente manera:

C:\>javac JDBCExample.java
C:\>

EjecuciónJDBCExampleProducirá el siguiente resultado:-

C:\>java JDBCExample
Conectando a la base de datos...
Creando declaración...
Listar conjunto de resultados para referencia...
ID: 95, Edad: 20, Primero: Sima, Apellido: Chug
ID: 100, Edad: 18, Primero: Zara, Apellido: Ali
ID: 101, Edad: 25, Primero: Mahnaz, Apellido: Fatma
ID: 102, Edad: 30, Primero: Zaid, Apellido: Khan
ID: 103, Edad: 30, Primero: Sumit, Apellido: Mittal
ID: 110, Edad: 20, Primero: Sima, Apellido: Chug
Eliminando fila...
Eliminando fila...
Listar conjunto de resultados para referencia...
ID: 100, Edad: 18, Primero: Zara, Apellido: Ali
ID: 101, Edad: 25, Primero: Mahnaz, Apellido: Fatma
ID: 102, Edad: 30, Primero: Zaid, Apellido: Khan
ID: 103, Edad: 30, Primero: Sumit, Apellido: Mittal
ID: 110, Edad: 20, Primero: Sima, Apellido: Chug
¡Adiós!
C:\>