数据库中的事务:
要么都成功,要么都失败
ACID原则
原子性:要么全部完成,要么都不完成
-致性:总数不变
隔离性:多个进程互不干扰
持久性: -旦提交不可逆,持久化到数据库了
隔离性的问题:
脏读: -个事务读取了另一个没有提交的事务
不可重复读:在同一个事务内,重复读取表中的数据,表数据发生了改变
虚读(幻读) :在一个事务内,读取到了别人插入的数据,导致前后读出来结果不一致
代码实现
1.开启事务 connection. setAutocommit(false);//关闭数据库的自动提交,自动开启事务。
2. 一组业务执行完毕,提交事务
3.可以在catch 语句中显示的定义回滚语句,但默认失败就会回滚