package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class MyTransactional { public static void main(String[] args) throws Exception{ String user = "root"; String password = "123456"; String url = "jdbc:mysql://localhost:3306/sampledb?useUnicode=true&characterEncoding=utf-8"; //二、獲取鏈接對象 Connection conn = DriverManager.getConnection(url, user, password); String sql = "delete from student where id='59'"; //二、得到sql語句執行對象 Statement stmt = conn.createStatement(); conn.setAutoCommit(false); //三、執行並保存結果集 int rows = stmt.executeUpdate(sql); System.out.println("受影響的行: "+rows); conn.commit(); // conn.rollback(); conn.close(); stmt.close(); } }
stmt.executeUpdate(sql); conn.setAutoCommit(false); conn.rollback();
try { con = DBConnection.getConnection(); //開啓事務 con.setAutoCommit(false); //處理業務邏輯 //提交事務 con.commit(); } catch (SQLException e) { e.printStackTrace(); //出現異常,回滾事務 try { con.rollback(); System.out.println("JDBC Transaction rolled back successfully"); } catch (SQLException e1) { System.out.println("SQLException in rollback" + e.getMessage()); } }
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Savepoint; import java.sql.Statement; public class MyTransactional { public static void main(String[] args) throws Exception{ String user = "root"; String password = "123456"; String url = "jdbc:mysql://localhost:3306/sampledb?useUnicode=true&characterEncoding=utf-8"; //二、獲取鏈接對象 Connection conn = DriverManager.getConnection(url, user, password); conn.setAutoCommit(false); String sql1 = "delete from student where id='158'"; String sql2 = "delete from student where id='159'"; //二、得到sql語句執行對象 Statement stmt = conn.createStatement(); //三、執行並保存結果集 stmt.executeUpdate(sql1); Savepoint savepoint1 = conn.setSavepoint("savepoint1"); stmt.executeUpdate(sql2); Savepoint savepoint2 = conn.setSavepoint("savepoint2"); conn.rollback(savepoint1); conn.commit(); // conn.rollback(); conn.close(); stmt.close(); } }