事务学习

一,利用数据库事务实现应用事务控制,对数据库操做有什么要求?spring

   须要使用同一个链接数据库

二,能不能让事务的全部操做都使用同一个数据库链接?线程

  单一数据源:能够;多数据源:不能够orm

三,单一数据源,如何让事务的全部操做使用同一链接事务

  链接是从dataSource中得到的,咱们改造一下dataSource,把获得的链接放到线程上下文,下一个操做获取链接时,从线程上下文获取便可。it

四,多数据源的状况下,还能了利用数据库事务吗?io

  能,属于一个数据源的操做放在一个局部事务中(数据库事务),当应用事务(全局事务)失败时,让这些局部事务都回滚。成功则让局部事务都提交。form

五,应用事务和数据库事务是同一个吗?方法

  数据库事务是数据库控制多个数据库操做的,应用事务是应用中控制多个应用操做(方法)的。应用事务借用数据库事务,把它的操做结果还原。数据

六,Spring的7种事务传播行为类型

  一、PROPAGATION_REQUIRED:若是当前没有事务,就建立一个新事务,若是当前存在事务,就加入该事务,该设置是最经常使用的设置。

  二、PROPAGATION_SUPPORTS:支持当前事务,若是当前存在事务,就加入该事务,若是当前不存在事务,就以非事务执行。‘

  三、PROPAGATION_MANDATORY:支持当前事务,若是当前存在事务,就加入该事务,若是当前不存在事务,就抛出异常。

  四、PROPAGATION_REQUIRES_NEW:建立新事务,不管当前存不存在事务,都建立新事务。

  五、PROPAGATION_NOT_SUPPORTED:以非事务方式执行操做,若是当前存在事务,就把当前事务挂起。

  六、PROPAGATION_NEVER:以非事务方式执行,若是当前存在事务,则抛出异常。

  七、PROPAGATION_NESTED:若是当前存在事务,则在嵌套事务内执行。若是当前没有事务,则执行与PROPAGATION_REQUIRED相似的操做。

七,事务由哪些部分组成?

  1,构成事务的操做,或事务范围

  2,事务控制部分

八,spring事务建模:三个核心

  》TransactionDefinition:事务定义

  》PlatformTransactionManager:事务管理器

  》TransactionStatus:事务的状态表示

相关文章
相关标签/搜索