事务学习

Posted yjt-kid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务学习相关的知识,希望对你有一定的参考价值。

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

   需要使用同一个连接

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

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

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

  连接是从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:事务的状态表示

以上是关于事务学习的主要内容,如果未能解决你的问题,请参考以下文章

3 分钟学习微服务系列 | 事务及分布式事务

java事务学习笔记总结

spring源码学习spring的事务管理源码学习

JAVAWEB学习笔记19_事务

spring学习笔记声明式事务

Spring 框架学习---- 声明式事务管理