Java事务以及嵌套事务
知识点:java事务属性
Propagation取值: REQUIRED(默认值):在有transaction状态下执行;如当前没有transaction,则创建新的transaction; SUPPORTS:如当前有transaction,则在transaction状态下执行;如果当前没有transaction,在无transaction状态下执行; MANDATORY:必须在有transaction状态下执行,如果当前没有transaction,则抛出异常IllegalTransactionStateException; REQUIRES_NEW:创建新的transaction并执行;如果当前已有transaction,则将当前transaction挂起; NOT_SUPPORTED:在无transaction状态下执行;如果当前已有transaction,则将当前transaction挂起; NEVER:在无transaction状态下执行;如果当前已有transaction,则抛出异常IllegalTransactionStateException。
1、场景--->并行事务:
并行事务:
A:方法事务为默认的REQUIRED
B:方法事务为 REQUIRES_NEW 或者 REQUIRED
执行结果:
结论:并行事务不存在事务影响
2、场景--->嵌套相同事务:
a) 事务嵌套,在同一个事务中,没有对异常进行处理
执行结果:两个都没有插入成功
结论:由于两个都是在一个事务当中,所以只要有一个方法事务有问题,那么都不会插入成功。
b) 事务嵌套,在同一个事务中,对异常进行处理
执行结果:两个都插入成功。
结论:如果事务存在异常,并进行捕获处理,不会影响事务。
3、场景--->嵌套不同事务:
a)事务嵌套,在不同事务中,没有对异常进行处理
执行结果:都没有插入成功。
结论:不同事务中,嵌套的事务,没有对异常进行处理,都不会执行成功。
b)事务嵌套,在不同事务中,对异常进行处理
执行结果:都插入成功。
结论:不同事务,只要对异常进行捕获并处理,都会执行成功
大结论:
1、在Java事务中,事务的嵌套,如果有事务成功,那么则都成功,否则都不会成功。
2、如果事务中存在异常,只要对异常进行捕获和处理,都为执行成功,否则都不会执行成功。
Java事务以及嵌套事务的更多相关文章
- 转!!java事务的处理
java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前 ...
- java事务的处理
java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务. 如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先 ...
- Java事务管理之Spring+Hibernate
环境与版本 除了上一篇中的hibernate的相关lib 外 Java事务管理之Hibernate 还需要加入Spring的lib 包和如下的一些依赖包 org.aopallianceorg.aspe ...
- 深入Java事务的原理与应用
一.什么是JAVA事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 ( ...
- java事务的类型——面试被问到
Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 1.JDBC事务 JDBC 事务是用 Connection 对象控制的.JDBC Conne ...
- java事务管理
一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性(isol ...
- 分布式事务(二)Java事务API(JTA)规范
一.引子 既然出现了分布式场景(DTP模型), 大java也及时制定出一套规范来给各大应用服务器.数据库/mq等厂商使用,以方便管理互通--->JTA闪亮登场.JTA(Java Transact ...
- java事务 深入Java事务的原理与应用
一.什么是JAVA事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (iso ...
- java 事务
之前的事务介绍基本都是数据库层面的事务,本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解. 关于事务的基础知识这里不再详细介绍,想要了解的同学可以在我的博客中阅读 ...
随机推荐
- 从 Vue 的视角学 React(四)—— 组件传参
组件化开发的时候,参数传递是非常关键的环节 哪些参数放在组件内部管理,哪些参数由父组件传入,哪些状态需要反馈给父组件,都需要在设计组件的时候想清楚 但实现这些交互的基础,是明白组件之间参数传递的方式, ...
- JavaScript 流程控制(二)循环结构
一.while 语句 语法结构: 声明循环变量:while (循环条件) { //循环体 // 迭代条件 } 当循环条件为 true 时,执行循环体:当循环条件为false时,结束循环. 二.do.. ...
- Mac 编译报错 symbol(s) not found for
查看静态库文件支持的arm64指令集架构的方法 root# lipo -info libname.a Architectures in the fat file: libname.a are: arm ...
- 【前端_js】Bootstrap之表单验证
Bootstrap表单验证插件bootstrapValidator使用方法整理 BootstrapValidator 表单验证超详细教程
- flask项目
虚拟环境需要 pipenv install flask pipenv install flask-sqlalchemy pipenv install python-dotenv pipenv inst ...
- Win10如何设置插入鼠标后自动禁用触摸板
首先按“Windows+R”键,调出运行窗口. 然后输入“control”然后点击“确定”! 打开Win10控制面板 在“控制面板”中,选择“硬件和声音”! 选择“AUSU Amart Ges ...
- git提交时报错处理办法
git提交时报错:Updates were rejected because the tip of your current branch is behind: 有如下几种解决方法: 1.使用强制pu ...
- mysql毫秒数引发的问题
起因:最近同事在做定时打卡的东西,遇到一个诡异的问题,端只是传了一个开始时间跟打卡周期,剩下的打卡时间都是由服务端自己生成的,显示的截止时间有的变成==23:59:59==. 有时候又变成了 ==00 ...
- Appium连接夜神模拟器,模拟手势点击(tap)
# -*- coding:utf-8 -*- from appium import webdriver from time import sleep desired_caps ={ 'platform ...
- MySQL定义char和varchar类型,utf8编码,则最大值为多少?
有道面试题:若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值为多少?先明白计算的一些规则限制 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只 ...