JavaEE中的事务管理——事务概述

今天打算说一说事务管理,读者可能了解也有可能不了解,其实很简单(大牛请自行绕过)。本来想引用个成语的啥的来描述事务的特点,但是搜肠刮肚也没有发现合适的,于是就找了下面几组成语来描述事务性。其实在官方文档中对于事务的描述也是分四个方面来说的。这里算是用自己的理解解释一下罢了。

第一对词语是:“开弓没有回头箭”和“前功尽弃”(功亏一篑?功败垂成?)

这一对词语结合起来看就是事务的原子性,就是我们平时说的要做就做完,要不做就一点儿也不要做。其中前面的做完就是说明这个事务已经成功了,后面说的是在执行失败的时候需要回滚事务,也就是说保持原样不变(请参考接下来的特性——一致性)。

第二对词语是:“守口如瓶”和“表里如一”

这对词语结合起来看就是事务的一致性,意思就是一个事务结束后那么数据将是有效的,不是不可以理解的。话句话说这个特性是上一个特性的补充,做了一半不想做了,那对不起你得给我恢复原样,不能一部分数据更改了,另一部分没有更改。

第三对词语是:“事不关己高高挂起”和“各扫自家门前雪,莫管他人瓦上霜”

这对词语翻译成白话文就是“管我屁事”,这里表述了事务的另一个特性——隔离性。也就是说不同的事务之间是没有关系的,当事务提交之后其他的事务才能看到更改,否则对于外部的事务来说好似一个黑盒子,不知道里面在干什么。

第四对词语是:“尘埃落定”和“生米煮成熟饭”

这对词语的意思就是一切都已经完成,别想后悔了。映射到事务的特性里面就是持久性。一旦事务完成之后那么就意味着在事务中做出的更改将继续保持,当然后面另一个事务进行更改就是另一码事了。

官方文档上说满足以上四个特点的事务称之为ACID事务(其中A:atomicityCconsistencyIisolationDdurability)。但是在满足ACID属性的时候人们考虑到性能问题会采取灵活的策略。比如数据的隔离级别问题,人们可以规定比之前更加宽松或者更加严格的规定。(具体可参照维基百科“事务隔离”词条。)人们这样规定是为了提升性能,或者是为了得到更加一致性的数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值