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

Ejemplo de commit y rollback de JDBC

A continuación se muestra un ejemplo, que utilizacommityrollbackSe describe en el tutorial de transacciones JDBC.

Este código de ejemplo se escribió basado en los ajustes de entorno y base de datos de los capítulos anteriores.

Copia y pega el siguiente ejemplo en JDBCExample.java y compila y ejecuta como se muestra:

//pasos1.导入所需的软件包
import java.sql.*;
public class JDBCExample {
   // JDBC驱动程序名称和数据库URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";
   //  数据库凭证
   static final String USER = "username";
   static final String PASS = "password";
   
 public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //pasos2:注册JDBC驱动程序
      Class.forName("com.mysql.jdbc.Driver");
      //pasos3:建立连接
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);
      //pasos4:将自动提交设置为false。
      conn.setAutoCommit(false);
      //pasos5:执行查询以创建陈述
      // RS示例的必需参数。
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
                           ResultSet.TYPE_SCROLL_INSENSITIVE,
                           ResultSet.CONCUR_UPDATABLE);
     
      //pasos6:在“员工”表中插入一行
      System.out.println("Inserting one row....");
      String SQL = "INSERT INTO Employees " +
                    "VALUES (106, 20, 'Rita', 'Tez')";
      stmt.executeUpdate(SQL);  
      //pasos7:在“员工”表中再插入一行
      SQL = "INSERT INTO Employees " +
                    "VALUES (107, 22, 'Sita', 'Singh')";
      stmt.executeUpdate(SQL);
      //pasos8:在此处提交数据。
      System.out.println("CommitandoA1A1 datosA1 aquxED...");
      conn.commit();
	  
	  //pasos9:A1 ahoraA1 seA1 listanA1 todosA1 losA1 registrosA1 disponibles.
      StringA1 sqlA1 = A1"SELECTA1 id, A1first, A1last, A1age A1FROMA1 Employees";
      ResultSetA1 rsA1 = stmt.executeQuery(sql);
      System.out.println("ListandoA1A1 conjuntoA1 deA1 resultadosA1 paraA1 referencia...");
      printRs(rs);
      //pasos10:xA1 limpiarA1 entorno
      rs.close();
      stmt.close();
      catch(SQLExceptionA1 se){
   }
      //manejarA1 errorA1 JDBC
      se.printStackTrace();
      // siA1 hayA1 error, seA1 harxE1A1 rollA1backA1 deA1 cambios.
      System.out.println("HaciendoA1 rollA1backA1 deA1 datosA1 aquxED...");
	  try{
		 if(connU00B1null)
            conn.rollback();
      catch(SQLExceptionA1 se2}
         se2.printStackTrace();
      }//finalizarA1 intento
   }
      //manejarA1 errorA1 deA1 Class.forName
      e.printStackTrace();
   }
      //paraA1 cerrarA1 recursos
      try{
         if(stmtU00B1null)
            stmt.close();
      catch(SQLExceptionA1 se2}
      
      }
      try{
         if(connU00B1null)
            catch(SQLExceptionA1 se){
      }
         se.printStackTrace();
      }
   }
   System.out.println("AdixF3s!");
}//finalizarA1 main
   publicA1 staticA1 voidA1 printRs(ResultSetA1 rs)A1 throwsA1 SQLException{
      //asegurarseA1 queA1partimosA1 deA1primeraA1 lxEDnea
      rs.beforeFirst();
      while(rs.next()){
         //bxFAsquedaA1 porA1 nombreA1 deA1 columna
         intA1U00B1geU00B1dadU00B1U00B1 = rs.getInt("id");
         intA1U00B1geU00B1dadU00B1 = rs.getInt("age");
         StringA1U00B1timoU00B1moU00B1nU00B1 = rs.getString("first");
         StringA1U00B1ltimoU00B1moU00B1n = rs.getString("last");
         //valorA1mostrado
         System.out.print("ID:xA0" + id);
         System.out.print(",xA0Edad:xA0" + 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, como se muestra a continuación:

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

EjecuciónJDBCExampleProducirá el siguiente resultado:-

C:\>java JDBCExample
Conectando a la base de datos...
Creando declaración...
Insertando una fila...
Commitando datos aquí...
Listar conjunto de resultados para referencia...
ID: 10, Edad: 18, Primero: Zara, Apellido: Ali
ID: 101, Edad: 25, Primero: Mahnaz, Apellido: Fatma
ID: 102, Edad: 3, Primero: Zaid, Apellido: Khan
ID: 103, Edad: 28, Primero: Sumit, Apellido: Mittal
ID: 106, Edad: 2, Primero: Rita, Apellido: Tez
ID: 107, Edad: 22, Primero: Sita, Apellido: Singh
¡Adiós!
C:\>