2.2.2 事务回滚异常定义
PROPAGATION_REQUIRED,readOnly,-Exception
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED
如果出现
PROPAGATION_REQUIRED,readOnly,-Exception
其中:
-Exception前面加上 "-" 时,表示发生指定异常时撤消操作,如果前面加上 "+",表示发生异常时立即提交。readonly就是read only,设置操作权限为只读,一般用于查询的方法,优化作用。
XML配置
优点:简单明了,事务的配置在一个配置文件中体现,事务切面比较清楚。更改事务定义,不需要修改源代码。
缺点:不够灵活,对单个方法的事务管理不好配置。例如有如下类和方法
public class A {
public methodA () {
//需要事务
n();
//不需要事务,操作时间比较长。
m();
}
//需要事务定义
public methodB () {
…
}
}
m不需要事务,如果m需要运行的时间比较长,这时:
在method A上声明事务定义,那么method A很容易事务超时。当然可以将transaction time out设的时间长一点,但这显然不是最好的解决办法。
不在method A上声明事务定义,只在m上声明事务,但是class A的method B又需要事务定义,这时xml方式的声明式事务就无法定义了。只能将method A从class A中移除,放入一个单独的不需要事务定义的类中。这就有可能将一些语义上内聚的方法拆分到不同的类中。
*********************************
2.3 自定义事务处理
2.3.1 配置事务
Spring提供两种方式的编程式事务管理:
使用 TransactionTemplate
直接使用一个 PlatformTransactionManager 实现
**********************************88
在TransactionDefinition接口中定义了五个不同的事务隔离级别
分享到:
相关推荐
行政事务2.docx
在IT行业中,数据库操作是至关重要的,特别是在处理数据一致性与可靠性的事务管理方面。事务是数据库操作的基本单元,确保了数据的完整性和一致性。本文主要围绕事务管理展开,特别是MySQL和JDBC中的事务操作,以及...
2-2 事务原则与实现:SQL事务 2-3 事务原则与实现:JDBC事务(上) 2-4 事务原则与实现:JDBC事务(下) 第3章 使用Docker搭建环境 介绍了Docker的使用,通过Docker将课程环境搭建起来,方便那些不了解这些技术的...
例如事务T1对一个表中所有的行的某个数据项做了从“1”修改为“2”的操作,这时事务T2又对这个表中插入了一行数据项,而这个数据项的数值还是为“1”并且提交给数据库。而操作事务T1的用户如果再查看刚刚修改的数据...
| 步骤 | 事务1 | 事务1输出 | 事务2 | 事务2输出 | |------|----------------------------------------------|----------------|----------------------------------------------|----------------| | 1 | `...
例如,事务T1先将X的值减去30,然后事务T2再将X的值乘以2,如果T1的更新未被提交,那么T2的更新就会覆盖T1的更新,T1的修改就丢失了。 不可重读是指在一个事务的不同操作之间,由于其他事务的修改,导致事务内部...
2. 配置事务管理器,例如DataSourceTransactionManager(基于JDBC)或HibernateTransactionManager(基于Hibernate)。 3. 启用基于注解的事务管理,并指定使用的事务管理器。 4. 使用@Transactional注解标记需要...
数据一致的基石_透彻理解无所不在的事务_2
2.mysql的事务 1.QueryRunner 1.事务的特性ACID 2.并发访问问题----由隔离性引起 3.事务的隔离级别 默认是自动事务: 执行sql语句:executeUpdate() ---- 每执行一次executeUpdate方法 代表 事务自动提交 ...
在可重复读隔离级别下,事务2可以看到事务1开始时的数据状态,即使事务1已经提交了修改。这是因为InnoDB采用了一致性非锁定读策略,事务在读取数据时不加锁,而是读取快照数据,从而提高了并发性能。然而,这可能...
在Spring框架中,事务管理是核心功能之一,它确保了数据操作的一致性和完整性。本教程将深入探讨如何在Spring中实现自定义事务管理器、编程式事务处理以及声明式事务`@Transactional`的使用。 首先,让我们了解事务...
在**可重复读**级别下,虽然事务1可以避免读取事务2的新记录,但如果事务2插入了一个年龄在10至30岁之间的新用户,则会发生幻读。在**提交读**级别下,事务1可能会读取到事务2已经提交的新记录,但事务1第一次读取时...
每个申请需要三个事务,两个在客户端,一个在服务器端,如果队列管理器独立,事务2可能需要两阶段提交。 4. 客户恢复机制: - 如果客户超时未收到应答,可以通过队列检查申请状态。每个申请具有全局唯一的ID,便于...
为了解决这些问题,GoldenDB的事务处理模块优化实践中,采用了多种技术手段,包括2PC协议、日志写入、消息数和定时器监控等,保障事务的一致性和可靠性。此外,GoldenDB还提供了丰富的监控体系和完善的运维能力,...
"ORACLE数据库事务处理和故障恢复" ORACLE数据库事务处理和故障恢复是指在ORACLE数据库中,为了确保数据的一致性和完整性,使用事务处理和故障恢复机制来解决数据库并发操作中的问题。 一、并发控制 在多用户...
如果事务1尝试修改文档,然后事务2在同一时刻尝试做同样的操作,那么第二个事务会被阻塞直到第一个事务完成。如果事务1提交,事务2可以继续;如果事务1回滚,事务2会发现冲突并回滚自己的更改。 ### 事务总结 - **...
例如,在`READ UNCOMMITTED`隔离级别下,事务1可以在未提交事务2的修改时读取数据,导致脏读。而在其他隔离级别下,事务1可能会看到事务2的不同状态,取决于隔离级别的设定。 总结来说,MySQL InnoDB的事务和锁机制...
例如,在提供的测试例子中,事务1在事务2开始之前修改了记录,但在事务2中看不到这些修改,直到事务1提交。这避免了不可重复读的问题。 然而,对于幻读,MySQL的InnoDB存储引擎在可重复读隔离级别下通过使用Next-...
"JPA事务管理" JPA(Java Persistence API)是一种Java持久化规范,它提供了一个抽象层来访问关系数据库。JPA的事务管理是指对一系列操作的管理,包括创建、读取、更新和删除(CRUD)等操作。事务管理的目的是确保...