JDBC事务
-
JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。
-
ACID原则:原子性、一致性、独立性及持久性(保证数据安全!)
1.开启事物 2.事务提交(commit 3.事物回滚(rollback 4.关闭事物
案例:银行卡转账。要么转账成功,卡a转出,卡b收到。要么卡a 未转出,卡b未收到。不能只有一方有数据更改。
-
示例:
public static void test() {
//配置信息
String url="jdbc:mysql://localhost:3306/jdbc?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false";
String userName="root";
String pwd="123456";
Connection connection=null;
try{
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//连接数据库
connection= DriverManager.getConnection(url, userName, pwd);
//开启事物,false为开启
connection.setAutoCommit(false);
String sql1="update student.accounts set money=money-1000 where id=2 ";
connection.prepareStatement(sql1).executeUpdate();
//制造错误
//int i=1/0;
String sql2="update student.accounts set money=money+1000 where id=1 ";
connection.prepareStatement(sql2).executeUpdate();
connection.commit();//两条SQL都执行成功
}catch (Exception e){
try {
connection.rollback();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
e.printStackTrace();
}finally {
System.out.println("SUCCESSFUL!");
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}