学习
实践
活动
工具
TVP
写文章

java事务_Java 事务详解

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 void rollback() 强制此事务回滚。 void setTimeout(int seconds) 它为由此实例开始的后续调用启动的任何事务设置事务超时。 Session,启动事务,执行所有与数据相关的工作,结束事务并关闭Session。 (1)JTA 在应用系统数据量越来越大时,系统数据就需要分布在不同的数据库中,当业务需求在多个数据库中做原子性操作时就可以选择JTA (Java Transaction API),JTA事务比JDBC事务更强大 一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。

6020

java 事务嵌套_Java事务以及嵌套事务

最近遇到事务的处理,嵌套事务,自己研究,整理一下。 1 先看结论 1、在Java事务中,事务的嵌套,如果有事务成功,那么则都成功,否则都不会成功。 结论:并行事务不存在事务影响 4.2 场景:嵌套相同事务 a) 事务嵌套,在同一个事务中,没有对异常进行处理 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest 结论:如果事务存在异常,并进行捕获处理,不会影响事务。 4.3 场景:嵌套不同事务 a)事务嵌套,在不同事务中,没有对异常进行处理 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public 结论:不同事务中,嵌套的事务,没有对异常进行处理,都不会执行成功。(其实在外部事务中出错,两个也是都不会插入成功数据。)

9010
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java事务的使用_Java跨库事务

    即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。 Java有几种类型的事务Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 2.JTA事务 JTA(Java Transaction API)提供了跨数据库连接(或其他JTA资源)的事务管理能力。 由Java客户端程序或EJB调用。 e、Xid接口:为事务标识符的Java映射 注:前3个接口位于Java EE版的类库 javaee.jar 中,Java SE中没有提供! 3)、Java持久化API事务(JPA) Hibernate多年来一直是事实上的Java持久化标准,但是现在Java持久化API作为真正的Java持久化标准进入大家的视野。

    8830

    java事务回滚案例_java事务控制

    下面总结一下经验教训: Spring事务的管理操作方法 编程式的事务管理 实际应用中很少使用 通过使用TransactionTemplate 手动管理事务 声明式的事务管理 开发中推荐使用( 代码侵入最少) Spring的声明式事务是通过AOP实现的 主要掌握声明式的事务管理。 17.5.3 声明式事务的回滚 上一节中介绍了如何设置开启Spring事务,一般在你的应用的Service层代码中设置,这一节将介绍在简单流行的声明式事务中如何控制事务回滚。 在Spring FrameWork 的事务框架中推荐的事务回滚方法是,在当前执行的事务上下文中抛出一个异常。 ,这样事务才会回滚(默认情况下Error也会导致事务回滚)。

    8210

    Java 事务注解(注解式事务)

    spring中的@Transactional(rollbackFor = Exception.class)事务处理,当你的方法中抛出异常时,它会将 事务回滚,数据库中的数据将不会改变,也就是回到进入此方法前的状态 rollbackFor=Exception.class) 2 让unchecked例外不回滚: @Transactional(notRollbackFor=RunTimeException.class) 3 不需要事务管理的

    23130

    Java+Oracle实现事务——JDBC事务

    https://blog.csdn.net/huyuyang6688/article/details/46675171        J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下如何实现 JDBC事务。         JDBC事务是由Connection对象所控制的,它提供了两种事务模式:自动提交和手动提交,默认是自动提交。         看一个例子: import java.sql.*; public class TransactionTest{ public static void main(String[] args) throws ,所以它的缺点是事务的范围只局限于一个数据库的连接,同一个事务中无法操作多个数据库。

    93520

    Java事务管理

    ; I(隔离性)保证事务不受外部并发操作影响的独立环境执行; D(持久性)事务完成之后,对于数据的修改是永久的,即使系统出现故障也能够保持; 一、Java事务管理 Java事务管理有三种类型 : JDBC事务、JTA(Java Transaction API)事务、容器事务 1.1 JDBC事务 JDBC的一切行为包括事务是基于一个Connection的,JDBC通过Connection对象进行事务管理 (); } } JDBC事务的优点: 接口较为简单,性能较好 缺点: 不支持多数据库的事务 1.2 JTA事务 Java事务API(Java Transaction API,简称JTA) Java 事务服务(Java Transaction Service,简称JTS) JTA和JTS一起,为J2EE平台提供了分布式事务服务。 (如Tomcat、Jetty以及普通的java应用) JTA提供了 java.transaction.UserTransaction,里面定义了下面的方法: begin:开启一个事务 commit:提交一个事务

    7540

    Java事务总结详解

    Java事务总结详解 1.什么是JAVA事务? 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。 既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系? 实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。 增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。 因此,数据库操作的事务习惯上就称为Java事务。 2. 为什么需要Java事务? 3.Java事务的类型 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。 因此,数据库操作的事务习惯上就称为Java事务

    2K10

    Java分布式事务

    分布式事务介绍 1.1 什么是事务 数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成[由当前业务逻辑多个不同操作构成]。 事务开始和结束之间的中间状态不会被其他事务看到。 隔离性(Isolation):多个事务并发执行时,并发事务之间互相影响的程度,比如一个事务会不会读取到另一个未提交的事务修改的数据。 延申拓展: 事务隔离性(面试): 脏读:事务A修改了一个数据,但未提交,事务B读到了事务A未提交的更新结果,如果事务A提交失败,事务B读到的就是脏数据。 幻读:在同一个事务中,同一个查询多次返回的结果不一致。事务A新增了一条记录,事务B在事务A新增提交前后各执行了一次查询操作,发现后一次比前一次多了一条记录。 自行复习:spring事务的传播机制(spring事务面试必问) 1.2 什么是分布式事务 分布式事务事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,且属于不同的应用

    12820

    精通Java事务编程(1)-深入理解事务

    十年来,事务一直是简化这些问题的首选机制。事务将应用程序的多个读、写操作组合成一个逻辑单元。即事务中的读、写操作是个执行的整体:整个事务要么成功(提交),要么失败(中止或回滚)。 并非所有应用都需要事务,有时可弱化事务处理或完全放弃事务(如为获得更高性能或更高可用性)。一些安全相关属性也可能会避免引入事务。 如何判断是否需要事务? 然而,事务成了这变革的受害者:新一代DB完全放弃事务或重新定义,即替换为比以前弱得多的保证。 随新型分布式DB炒作,人们普遍认为事务是可扩展性的对立面,大型系统都必须放弃事务以获得更高性能和高可用性。 1.2.2 多对象事务的必要性 许多分布式数据存储不支持多对象事务,因为多对象事务很难跨分区实现,且在高可用性或高性能情况下也碍事。 但分布式数据库中实现事务,并没有什么原理障碍。 为解决该问题,事务管理器可定义一个唯一的事务标识符来逻辑上绑定一组写操作,且该事务标识符独立于TCP连接。

    10830

    推荐学java——Spring事务

    开发者只需要掌握 Spring事务处理这一个方案,就可以实现使用不用数据库访问技术的事务管理。 事务管理面向的是Spring,由Spring管理事务,做事务提交,事务回滚。 BuyGoodsService { void buyGoods(Integer gid, Integer num); } 其实现类代码如下: /** * desc: * author: 推荐学java :method name="buyGoods" propagation="REQUIRED" isolation="DEFAULT" rollback-for="java.lang.NullPointerException ,java.lang.IndexOutOfBoundsException"/> <! Spring项目,包括Dao层和业务层以及简单的配置 《推荐学java》系列干到这里,小编似乎也有一种豁然开朗的感觉,并没有开始学习前的恐惧了,而是开轻松,大家加油~

    12030

    MySQL 事务--Java免费学习

    MySQL 事务主要用于处理操作量大,复杂度高的数据。 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行 事务用来管理insert,update,delete 语句 一般来说,事务是必须满足4个条件(ACID):Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性) 1、事务的原子性:一组事务 2、稳定性 :有非法数据(外键约束之类),事务撤回。 3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。 PHP中使用事务实例 <?

    17020

    java分布式事务框架_Java分布式事务,及解决方案

    1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 对于事务在执行中发生错误,所有的操作都会被回滚,整个事务就像从没被执行过一样。 3.3、隔离性(I) 所谓的隔离性就是说,事务事务之间不会互相影响,一个事务的中间状态不会被其他事务感知。 5、常见的分布式事务解决方案 5.1、基于XA协议的两阶段提交 XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。 5.2、消息事务+最终一致性 所谓的消息事务就是基于消息中间件的两阶段提交,本质上是对消息中间件的一种特殊利用,它是将本地事务和发消息放在了一个分布式事务里,保证要么本地操作成功成功并且对外发消息成功,

    11740

    Java的@Transactional事务回滚

    ,并执行目标方法的逻辑, 最后根据执行情况是否出现异常,利用抽象事务管理器AbstractPlatformTransactionManager 操作数据源 DataSource 提交或回滚事务。 处理Springboot下提交事务异常,数据库没有回滚的问题 Spring文档中说道,Spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚,而对检查型异常则不进行回滚操作。 因为注解是不能继承的,这就意味着如果你正在使用基于类的代理时,那么事务的设置将不能被基于类的代理所识别,而且对象也将不会被事务代理所包装(将被确认为严重的)。 4.避免 Spring 的 AOP 的自调用问题:自调用就是方法A内调用本类的另一个加上事务注解的方法B时,方法B中对数据库的操作是不带事务的。 ,出现异常事务不会发生回滚。

    11730

    java 配置事务回滚_Spring@Transactional事务回滚

    Spring中事务分为编程时事务和声明式事务,编程式事务:编程人员通过代码控制事务的开启、回滚、提交,声明式事务:把事务的处理交给spring。 使用注解@transactional配置就是声明式事务。 ”> 4 //指向的数据源 5 6 //配置事务注解驱动 7 然后在需要事务管理的地方加@Transactional 注解。 在项目中关于事务该配置的也配置了,需要注意的问题也注意了,但有的事务可以出现回滚有的回滚失败,最终问题所在: id相同的事务配置分别配置在两个application.xml文件中,如果多个application.xml 有配置,在web.xml中后加载的application.xml中的事务配置会覆盖最先加的application.xml中的事务配置。

    9620

    Java事务解析(事务的基本操作+隔离的等级+事务的四大特性+事务的概念)

    Java事务解析(事务的基本操作+隔离的等级+事务的四大特性+事务的概念) 什么是事务? 如果一个包含多个步骤的业务操作,这些操作被事务管理,那么这些操作要么同时成功要么同时失败 事务的四大特性(必须记住): 持久性:当事务回滚或者提交之后,数据库会持久化数据 一致性:事务操作前后,数据的总量不变 原子性:是不可分割的最小单位,不可分割,要么同时成功要么同时失败,不可分割 隔离性:各个事务之间相互独立 事务的基本操作: 开启事务:start transaction 回滚事务:Roolback 脏读: A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作,这时候如果事务B回滚,那么A事务读到的数据是不被承认的。 以上就是java事务的一些基础知识,如有错误还请各位批评指正,喜欢我的文章可以关注或者收藏

    21020

    精通Java事务编程(9)-总结

    事务作为抽象层,允许应用忽略DB 内部一些复杂并发问题和某些硬件、软件故障,简化应用层的处理逻辑:事务中止(transaction abort),而应用仅需重试。 对复杂访问模式,事务可大大减少需要考虑的潜在错误情景数量。 如没有事务,各种错误情况(进程崩溃,网络中断,停电,磁盘已满,意外并发)意味着数据可能各种不一致。如非规范化的数据可能很容易与源数据不同步。 几乎所有事务实现都可防止 读倾斜(不可重复读) 同一个事务中,客户端在不同时间点看见数据库不同值。 只有可串行化隔离级别能防所有这些问题,有三种不同实现方案: 严格串行执行事务 若每个事务的执行很快,且单CPU核即可满足事务吞吐要求,这是简单有效的选择 2PL 数十年来,一直是可串行化的标准实现 使用乐观锁机制,允许事务并发执行而不互相阻塞。仅当事务提交时,才检查可能的冲突,若发现违背串行化,则中止事务

    10330

    深入Java事务的原理与应用

    大家好,又见面了,我是全栈君 一、什么是JAVA事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。 既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系? 实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。 增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因此,数据库操作的事务习惯上就称为Java事务。 二、为什么需要Java事务 事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。 三、Java事务的类型 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务

    4610

    基于可靠消息方案的分布式事务(二):Java中的事务

    如果已对Java中的事务了解,可略过本文,欢迎关注本系列文章。 Java 事务的类型 事务管理是应用系统开发中必不可少的一部分。 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 JTA(Java Transaction API),Java事务API允许应用程序执行分布式事务,也就是说事务可以访问或更新两个或更多网络上的计算机资源。 Java 事务编程接口(JTA:Java Transaction API)和 Java 事务服务 (JTS;Java Transaction Service) 为 J2EE 平台提供了分布式事务服务。 总结 本文主要介绍了Java事务的类型:JDBC事务、JTA(Java Transaction API)事务、容器事务

    68860

    Java提升篇-事务隔离级别和传播机制

    spring就是对数据库事务进行了封装而已,并提了5种事务隔离级别和7种事务传播机制。 5种事务隔离级别 ISOLATION_DEFAULT spring将使用数据库中默认的事务隔离级别。 NOT_SUPPORTED 不支持事务,如果当前有事务则挂起事务运行。 REQUIREDS_NEW 新建一个事务并在这个事务中运行,如果当前存在事务就把当前事务挂起。 新建的事务的提交与回滚一挂起事务没有联系,不会影响挂起事务的操作。 MANDATORY 强制当前方法使用事务运行,如果当前没有事务则抛出异常。 NEVER 当前方法不能存在事务,即非事务状态运行,如果存在事务则抛出异常。 SUPPORTS 支持当前事务,如果当前没事务也支持非事务状态运行。 NESTED 如果当前存在事务,则在嵌套事务内执行。 嵌套事务的提交与回滚与父事务没有任务关系,反之,当父事务提交嵌套事务也一起提交,父事务回滚会也回滚嵌套事务的。

    62250

    扫码关注腾讯云开发者

    领取腾讯云代金券