事务的4个属性:
原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的
事务的四个操作:
开启事务,提交事务,回滚事务,关闭事务
在Mysql中设置事务
-- 开启事务
start transaction;
-- 事务提交
commit;
-- 事务回滚
rollback
-- 关闭事务
stop transaction
jdbc连接数据库开启事务
jdbc使用Connection对象连接数据库并开启事务
Connection conn==DriverManager.getConnection(url,username,password);//参数为数据库信息
//通知数据库开启事务
try{
conn.setAutoCommit(false);
conn.preparStatment("update t_dispatche_rule set is_del='1'“).execute();
conn.commit();//sql没有问题则提交事务
}catch(Exception e){
conn.rollback();
}
Connection的三个方法与事务相关:
setAutoCommit(boolean):通知数据库开启事务
设置是否为自动提交事务,如果true(默认值就是true)表示自动提交,也就是每条执行的SQL语句就是一个单独的事务,如果设置false,那么就相当于开启了事务;con.setAutoCommit(false)表示开启事务
commit():提交结束事务;con.commit();表示提交事务
rollback():回滚结束事务。con.rollback();表示回滚事务