Springmvc的事务控制和隔离级别

原创
2018/10/22 13:54
阅读数 182

事务的4大特性

原子性:强调事务的不可分割

一致性:事务的执行的前后数据的完整性保持一致

持久性:事务一旦结束,数据就持久到数据库

隔离性:一个事务执行的过程中,不应该受到其他事务的干扰 

 

事务考虑的安全性问题

脏读:一个事务读到了另一个事务的未提交的数据

幻读:: 一个事务读到了另一个事务已经提交的 insert 的数据导致多次查询结果不一致

不可重复读:一个事务读到了另一个事务已经提交的 update 的数据导致多次查询结果不一致.

 

 

设置事务隔离级别(5种)

DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别
未提交读(read uncommited :脏读,不可重复读,虚读都有可能发生 
已提交读 read commited:避免脏读。但是不可重复读和虚读有可能发生 
可重复读 repeatable read :避免脏读和不可重复读.但是虚读有可能发生
串行化的 serializable :避免以上所有读问题

Mysql默认是可重复读,我们项目应用也是这个这个级别

Oracle默认是已提交读

 

查询当前系统的事务隔离级别sql

select @@global.tx_isolation;

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部