码迷,mamicode.com
首页 > 其他好文 > 详细

事务学习

时间:2018-10-16 21:54:37      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:一个   manage   线程   结果   new   上下文   学习   数据库操作   嵌套   

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

   需要使用同一个连接

二,能不能让事务的所有操作都使用同一个数据库连接?

  单一数据源:可以;多数据源:不可以

三,单一数据源,如何让事务的所有操作使用同一连接

  连接是从dataSource中获得的,我们改造一下dataSource,把得到的连接放到线程上下文,下一个操作获取连接时,从线程上下文获取即可。

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

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

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

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

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

  1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。

  2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘

  3、PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。

  4、PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。

  5、PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

  6、PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

  7、PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

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

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

  2,事务控制部分

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

  》TransactionDefinition:事务定义

  》PlatformTransactionManager:事务管理器

  》TransactionStatus:事务的状态表示

事务学习

标签:一个   manage   线程   结果   new   上下文   学习   数据库操作   嵌套   

原文地址:https://www.cnblogs.com/yjt-kid/p/9800524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!