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(); } }