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