事务总结
1,事务的特性★★★
ACID
A,原子性:事务里面的操作单元不可以切割,要么全部成功,要么全部失败
C,一致性:事务执行前后,业务状态和其他业务状态保持一致
I,隔离性:一个事务执行的时候最好不要受到其他事务的影响
D,持久性:一旦事务提交或者回滚,这个状态都要持久化到数据库中
2,不考虑隔离性会出现的读问题★★
脏读:在一个事务中读取到另一个事务没有提交的数据
不可重复读:在一个事务中,两次查询的结果不一致(针对的update操作)
虚读(幻读):在一个事务中,两次查询的结果不一致(针对的insert操作)
通过设置数据库的隔离级别来避免上面的问题(了解)
read uncommited 读未提交 上面的问题都会出现
read commited 读已提交 可以避免脏读的发生
repeatable read 可重复读 可以避免脏读和不可重复读的发生
serializable 串行化 可以避免所的有问题
3,四种隔离级别的效率
read uncommited > read commited > repeatable read > serializable
四种隔离级别的安全性
read uncommited < read commited < repeatable read < serializable
开发中绝对不允许脏读的发生
mysql中默认的级别:repeatable read
oracle中默认级别:read committed
java中控制隔离级别:(了解)
Connection的api
void setTransactionIsolation(int level)
level是常量