EJB事务管理

本文详细介绍了EJB中的两种事务管理方式:容器管理事务(CMT)和Bean管理事务(BMT),包括事务的概念、隔离级别。CMT由容器自动处理事务边界,而BMT允许开发者灵活控制。此外,还讨论了JDBC事务与JTA事务的区别,JDBC局限于单一数据库,而JTA支持分布式事务。选择合适的事务管理方式对于EJB应用至关重要。
摘要由CSDN通过智能技术生成

  EJB事务管理有两种方式,一种是利用容器管理,称为CMT;另一种是Bean管理事务,称为BMT。

 

事务

 

事务的概念

 

事务是事件执行的最小单元,事务具有四个特性:

  原子性:事务中的所有操作必须都成功,否则就认为是失败。

  一致性:事务不能违反完整性约束,不管事务是否提交,都要遵守约束的规则。

  隔离性:事务的执行是不影响同时执行的其他事务的。

 

事务的隔离级别

 

  事务的隔离级别是对应事务的隔离性的,虽然同时执行的事务之间是相互不影响的,但是不影响的程度需要隔离级别来规定。

 

  未提交读(Read Uncommitted):多个事务操作相同的数据,其中事务A读取了数据,对数据进行了更改的操作,但是还没提交的时候,其他事务就能读到事务A更改过的数据。此时如果事务A对数据又进行了一次更改之后提交事务,此时其他事务读到的已经不是最新数据了,也就造成了脏读。

 

  提交读(Read Committed):提交读的级别防止了脏读的情况产生,也就是事务提交之后才可以读取,这样就读到了真实数据。但是会有这么一个情况,当事务A读取了数据,事务还没提交时,另外一个事务B对该数据进行了修改,并且提交了事务。在事务B提交之前,事务A的数据一直是刚开始取出的数据,事务B提交后,事务A没办法再去库里得到事务B提交的数据,也就造成了不可重复读。

 

  重复读(Repeatable read)࿱

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值