事务处理:
如果一个事务中一个操作发生错误,则将此事务中所有操作回滚。


实例:
TestTransaction.java:
  1. import java.sql.*;   
  2.   
  3. public class TestTransaction {   
  4.   
  5.     public static void main(String[] args) {   
  6.         Connection conn = null;   
  7.         Statement stmt = null;   
  8.            
  9.         try {   
  10.             Class.forName("oracle.jdbc.driver.OracleDriver");   
  11.             conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:mgc","system","admin");   
  12.             conn.setAutoCommit(false);   
  13.             stmt = conn.createStatement();   
  14.             stmt.addBatch("Insert INTO member(id,name) VALUES(15,'m15')");   
  15.             stmt.addBatch("Insert INTO member(id,name) VALUES(16,'m16')");   
  16.             stmt.addBatch("Insert INTO member(id,name) VALUES(17,'m17')");   
  17.             stmt.executeBatch();   
  18.             conn.setAutoCommit(true);   
  19.         } catch (ClassNotFoundException e) {   
  20.             e.printStackTrace();   
  21.         } catch (SQLException e) {   
  22.             e.printStackTrace();   
  23.             try {   
  24.                 if (conn != null) {   
  25.                     conn.rollback();   
  26.                     conn.setAutoCommit(true);   
  27.                 }   
  28.             } catch (SQLException e1) {   
  29.                 e1.printStackTrace();   
  30.             }   
  31.         } finally {   
  32.             try {   
  33.                 if (stmt != null) {   
  34.                     stmt.close();   
  35.                     stmt = null;   
  36.                 }   
  37.                 if (conn != null) {   
  38.                     conn.close();   
  39.                     conn = null;   
  40.                 }   
  41.             } catch (SQLException e) {   
  42.                 e.printStackTrace();   
  43.             }   
  44.         }   
  45.     }   
  46.   
  47. }