带你走进EJB--事务隔离级别

        在上文中我们提到,锁机制能有效地解决并发事务时的各种问题,但是也会影响到并发的性能。数据库系统提供了4种可选的事务隔离级别,它们是

 

1.Read Uncommited:读未提交的数据

 

2.Read commited:读已提交的数据

 

3.Repeateble Read:可重复读

 

4.Serialable:序列化

 

 

ReadUncommited: 该隔离级别读取数据时不使用任何锁。可能会出现脏读,不可重复读,和虚读的问题。

 

Readcommited:返回的是读取时间点之前已提交的数据,因此可以避免脏读。但重复读数据时,返回的数据和读取时间点有关,因此会重现不可重复读,另外还会出现虚读现象。

 

RepeatableRead:该隔离级别能够保证重复读,可以避免脏读和不可重复读问题。

 

Serializable:该隔离级别能够避免脏读,不可重复读和虚读现象,是最严格的隔离级别。

 

        上面四种隔离级别,从1-4隔离级别越来越严格,数据安全和真实性越来越高,但并发性能越来越低。所以选择什么样的隔离级别应根据应用的具体要求而定。对于多数应用程序,可以有优先考虑把数据库系统的隔离级别设为ReadCommited,它能够避免脏读,而且具有较好的并发性能。尽管它会导致不可重复读、幻像读这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。

 

  A.悲观锁:指在应用程序中显示的为数据资源加锁。尽管能防止丢失更新和不可重复读这类并发问题,但是它会影响并发性能,因此应该谨慎地使用。

 

  B.乐观锁:乐观锁假定当前事务操作数据资源时,不会有其他事务同时访问该数据资源,因此完全依靠数据库的隔离级别来自动管理锁的工作。应用程序采用版本控制手段来避免可能出现的并发问题。

 

        至此我们对数据库事务的相关内容有了进一步了解,也为EJB的事务管理做了一系列的铺垫,在下一篇文章我们将具体来了解EJB是如何进行事务管理的.

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值