首页 > 代码库 > 第三十天 出入有道进退自如 —Spring的事务管理
第三十天 出入有道进退自如 —Spring的事务管理
6月16日,晴。“宜将剩勇追穷寇,不可沽名学霸王。天若有情天亦老,人间正道是沧桑。”
有始有终、有往有还、进退自如乃Spring事务管理之道,也是万物生生不息、和谐共处之道。遵道而行,但到半途需努力;会心不远,欲登绝顶莫辞劳。
事务是一个最小的工作单元,不论成功与否都作为一个整体进行工作。
不会有部分完成的事务。由于事务是由几个任务组成的,因此如果一个事务作为一个整体是成功的,则事务中的每个任务都必须成功。如果事务中有一部分失败,则整个事务失败。
当事务失败时,系统返回到事务开始前的状态。这个取消所有变化的过程称为“回滚”( rollback )。例如,如果一个事务成功更新了两个表,在更新第三个表时失败,则系统将两次更新恢复原状,并返回到原始的状态。
数据库的更新通常都是由客观世界的所发生的事件引起的。为保证数据库内容的一致,就要将数据库的一组操作作为一个整体来进行,要么全部成功完成,要么全部失败退出。如果由于故障或其它原因而使一组操作中有一些完成,有一些未完成,则必然会使得数据库中的数据出现不一致,从而使得数据库的完整性受到破坏。因此,更新操作序列必须作为一个整体在DBMS执行时出现,即“要么全做,要么全不做”。SQL提供了事务处理的机制,来帮助DBMS实现上述的功能。下面看一个单纯的spring的声明式(XML 式)事务管理的例子。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。