【事务系列一】事务概念与特性

本文通过一个简单的借款案例,阐述了在Java编程中事务管理的基本概念及其重要性。文章详细解释了事务的四大特性:原子性、一致性、持久性和隔离性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Java的编程开发中,我们会利用各种数据资源(比如:数据库、文件系统)来保存系统状态。当程序进入业务逻辑处理,这些数据资源或多或少都会进行一定程度的操作。为了保证数据操作后的正确性以及完整性,因此引入事务这一个概念来进行管理。
 
在这里,需要举一个例子来辅助理解。
A向B借款,在借款前A签下了借条,此时B获取借条后,前行银行去取钱,但是银行今天没有开,此处的银行异常造成了A与B的债务关系建立的失败,A自然没有欠B钱了。
 
从这个简单的例子,我们可以看到:
1.整个借款流程中分为多个步骤,这些步骤存在钱款的数据资源的变更的情况;
2.每一个步骤都决定了借款流程的结果是否成功或者失败,只要任何一个步骤失败,都直接宣告借款的失败。
3.当借款失败后,先前变更的数据都会恢复到借款前的数据。
 
我们可以将这次借款看做一次事务,它具备以下几个特性:
1.原子性。事务内的全部操作都直接决定事务结果,当且仅当所有操作成功时事务才成功,否则失败。
2.一致性。事务发生前后的数据在经历变更后应该保持一致。A、B以及银行无论借款这个行为是否成功,三者的数据综合应该是恒定的,而不存在借款前三者为10万,借款后却变成4万的情况。
3.持久性。当事务提交成功,那么数据将被持久化,除非进入下一次数据变更阶段,否则不再变化。
4.隔离性。事务与事务之间具备边界,这个边界的交接距离远近即事务的隔离性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值