首页 > 代码库 > 第三十天 出入有道进退自如 —Spring的事务管理

第三十天 出入有道进退自如 —Spring的事务管理

          6月16日,晴。“宜将剩勇追穷寇,不可沽名学霸王。天若有情天亦老,人间正道是沧桑。”

       有始有终、有往有还、进退自如乃Spring事务管理之道,也是万物生生不息、和谐共处之道。遵道而行,但到半途需努力;会心不远,欲登绝顶莫辞劳。            

       事务是一个最小的工作单元,不论成功与否都作为一个整体进行工作。
       不会有部分完成的事务。由于事务是由几个任务组成的,因此如果一个事务作为一个整体是成功的,则事务中的每个任务都必须成功。如果事务中有一部分失败,则整个事务失败。
       当事务失败时,系统返回到事务开始前的状态。这个取消所有变化的过程称为“回滚”( rollback )。例如,如果一个事务成功更新了两个表,在更新第三个表时失败,则系统将两次更新恢复原状,并返回到原始的状态。
             数据库的更新通常都是由客观世界的所发生的事件引起的。为保证数据库内容的一致,就要将数据库的一组操作作为一个整体来进行,要么全部成功完成,要么全部失败退出。如果由于故障或其它原因而使一组操作中有一些完成,有一些未完成,则必然会使得数据库中的数据出现不一致,从而使得数据库的完整性受到破坏。因此,更新操作序列必须作为一个整体在DBMS执行时出现,即“要么全做,要么全不做”。SQL提供了事务处理的机制,来帮助DBMS实现上述的功能。

          下面看一个单纯的spring的声明式(XML 式)事务管理的例子