setSavepoint()进行数据库存档,mysql事务,rollback()回滚

xiaoxiao2021-02-28  105

import java.sql.*; //mysql事务。 public class Main { public static void main(String[] args) throws SQLException { String ClassName = "com.mysql.jdbc.Driver";//固定格式 String url = "jdbc:mysql://localhost:3306/test";//test是在mysql下自定义建立的数据库 String userName = "root";//mysql的user,就是你在安装mysql时设定的用户名,和下面的用户密码 同理 String password = "root"; Connection connect = null; Savepoint sp = null; PreparedStatement statement1 = null; PreparedStatement statement2 = null; try { connect.setAutoCommit(true);//相当于开启事务 Class.forName(ClassName); connect = DriverManager.getConnection(url, userName, password); System.out.println("222Success connent the Mysql server"); //下面开始查询 你在表里输入的内容; //statement存在安全隐患 //PreparedStatement 有预编译 String sql = "select * from user"; String sql2 = "update user set password = '8888' where name = '呵呵'"; statement1 = connect.prepareStatement(sql); sp = connect.setSavepoint("111");//存档 statement2 = connect.prepareStatement(sql2); statement1.executeQuery(); statement2.executeUpdate(); } catch (ClassNotFoundException e) { System.out.println("Error loading Mysql Driver"); e.printStackTrace(); } catch (SQLException e) { connect.rollback();//回滚事务 connect.rollback(sp);//回滚到检查点 e.printStackTrace(); } finally { //关闭流 statement1.close(); statement2.close(); //关闭连接 connect.close(); } } }
转载请注明原文地址: https://www.6miu.com/read-62030.html

最新回复(0)