事务隔离机制(hibernate 应用)

原创 2011年01月07日 21:48:00

1.事务的特性:

acidatomic原子性不用多说 consistent一致性就是系统的数据不会遭到破坏 isolated隔离性防止同时读取同一条记录 durable持久性保存在db或其它形式的持久设备中

隔离级别的几个重要概念

  
脏读:事务 A 事务B   A对一条记录修改但未提交,B此时读取此条记录,之后Acommit失败

  
不可重复读:事务 A 事务B  A里面执行两次或以上的查询,查询的结果不对,在中间B对此记录改变了

  
幻读:当读取几条记录后,另外一个事务插入了一条记录,此后的查询会出现原来没有的额外记录

为防止以上的情况,可以采用不同的隔离级别

  2.事务并发时可能出现的问题:

    1.第一类丢失更新(Lost Update

时间

事务A

事务B

T1

开始事务

 

T2

 

开始事务

T3

查询账户余额1000

 

T4

 

查询账户余额1000

T5

 

汇入100元把余额更新1100

T6

 

提交事务

T7

取出100把余额改成900

 

T8

撤销更新

 

T9

余额为1000(丢失更新)

 

 

 

 

2.脏读(dirty read读了一个没有提交的事务的数据

 

时间

事务A

事务B

T1

开始事务

 

T2

 

开始事务

T3

 

查询账户余额1000

T4

 

汇入100元把余额更新1100

T5

查询账户余额1000(脏读)

 

T6

 

回滚

T7

取款1100

 

T8

提交事务失败

 

3.不可重复读(non-repeatable read),同一个事务前后数据不一致,被其它事务所影响

时间

事务A

事务B

T1

开始事务

 

T2

 

开始事务

T3

查询账户余额1000

 

T4

 

汇入100元把余额更新1100

T5

 

提交事务

T6

查询账户余额1100

 

T7

取款1100

 

T8

提交事务

 

4.第二类丢失更新(second lost update proplem

时间

转账事务A

取款事务B

T1

 

开始事务

T2

开始事务

 

T3

 

查询账户余额1000

T4

查询账户余额1000

 

T5

 

取出100元把余额更新900

T6

 

提交事务

T7

存入100

 

T8

提交事务

 

T9

把余额为1100(丢失更新)

 

 

5.幻读(phantom read),插入和更新

时间

查询事务A

插入事务B

T1

开始事务

 

T2

 

开始事务

T3

查询学生人数为10

 

T4

 

插入一个新学生

T5

 

 

T6

查询学生人数为11

提交事务

T7

 

 

T8

提交事务

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

事务隔离机制(hibernate 应用)

http://blog.csdn.net/centre10/article/details/6123542 1.事务的特性: acid:atomic原子性不用多说 consistent...

事务隔离机制以及hibernate悲观锁和乐观锁

脏读dirty   reads:当事务读取还未被提交的数据时,就会发生这种事件。 不可重复的读non-repeatable   reads:当事务两次读取同一行数据,但每次得到的数据都不一样时,就会发...

Hibernate事务隔离机制(乐观锁-悲观锁)

Hibernate事务隔离机制——乐观锁、悲观锁

Hibernate优化(五) 之事务隔离机制(悲观锁、乐观锁)

事务的4大特性(ACID): 原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。一致性(Consistemcy):事务前后,数据库的状态都满足所...

关于hibernate一级,二级缓存以及事务隔离机制。

1、Hibernate的一级缓存 在Hibernate框架内部应用缓存提高应用系统的运行性能,Hibernate中的缓存分为为一级和二级缓存。 Hibernate 的一级缓存是内置缓存,不能通过...

Hibernate事务隔离级别

Hibernate事务隔离级别: 隔离级别 脏读 (Dirty Read) 不可重复读 (NonRepeatable Read) 幻读 (Phant...

Hibernate 事务隔离级别

Hibernate事务隔离级别 脏读Dirty Read 不可重复读Unrepeatable Read 幻读Phantom Read ANCI四种事务隔离级别isolate Read Uncommit...

Java程序员从笨鸟到菜鸟之(六十五)细谈Hibernate(十六)数据库事务与隔离级别

数据库事务:事务是指一组相互依赖的操作行为,如银行交易、股票交易或网上购物。事务的成功取决于这些相互依赖的操作行为是否都能执行成功,只要有一个操作行为失败,就意味着整个事务失败。关于事务的一个经典例子...

Hibernate深入理解----03操作Session缓存方法(flush、refresh、clear,事务隔离级别)

参考代码下载github:https://github.com/changwensir/java-ee/tree/master/hibernate4     Session 接口是 Hibernat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)