前言从今天开始本系列就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约 【1707】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图,让你更好的理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考... 一. 事务事务这个概念不太容易理解,所以我们通过下面一个模拟转账的案例来让各位小伙伴理解事务到底是什么 (资料图片仅供参考) 1. 模拟转账生活当中转账是转账方账户扣钱,收账方账户加钱。我们用数据库操作来模拟现实转账。 举个栗子:数据库模拟转账。
上述代码完成了两个账户之间转账的操作。 举个栗子:模拟转账错误。
上述代码在减操作后过程中出现了异常或加钱语句出错,会发现,减钱仍旧是成功的,而加钱失败了! 注意:每条 SQL 语句都是一个独立的操作,一个操作执行完对数据库是永久性的影响。 2. 事务的概念事务是一个原子操作。是一个最小执行单元。可以由一个或多个SQL语句组成,在同一个事务当中,所有的SQL语句都成功执行时,整个事务成功,有一个SQL语句执行失败,整个事务都执行失败。 各位小伙伴是否理解了呢?那么我们再做个小小的总结: 事务就是让多个操作形成一个整体,在这个整体中的多个操作要么执行全成功,要么执行全失败。这就是事务的作用。 3. 事务的执行过程开始过程:连接到数据库,执行一条DML语句。 上一个事务结束后,又输入了一条DML语句,即事务的开始。 结束过程如下:
4. 事务的原理数据库会为每一个客户端都维护一个空间独立的缓存区(回滚段),一个事务中所有的增删改语句的执行结果都会缓存在回滚段中,只有当事务中所有SQL语句均正常结束(commit),才会将回滚段中的数据同步到数据库。否则无论因为哪种原因失败,整个事务将回滚(rollback)。 5. 事务的特性下面给各位小伙伴系统的说一下事务都具有哪些特性和功能。 通常叫做ACID原则,因为ACID是由下面四个单词的首字母构成的。 Atomicity(原子性):表示一个事务内的所有操作是一个整体,要么全部成功,要么全部失败 Consistency(一致性):表示一个事务内有一个操作失败时,所有的更改过的数据都必须回滚到修改前状态 Isolation(隔离性):事务查看数据操作时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。 Durability(持久性):持久性事务完成之后,它对于系统的影响是永久性的。 6. 事务应用应用环境:基于增删改语句的操作结果(均返回操作后受影响的行数),可通过程序逻辑手动控制事务提交或回滚。 举个栗子:事务完成转账,A账户给B账户转账。
注意:开启事务后,执行的语句均属于当前事务,成功再执行 COMIIT,失败要进行 ROLLBACK。 二. 结语最后在这里对本文核心要点进行总结:
|
Powered by www.firstproduction.net 第一产经网
备案号:豫ICP备2022016495号-9© 2013-2017 联系我们:939 674 669@qq.com