事务管理 Java事务管理有三种类型: JDBC事务、JTA(Java Transaction API)事务、容器事务 1.1 JDBC事务 JDBC的一切行为包括事务是基于一个Connection的...事务 Java事务API(Java Transaction API,简称JTA) Java事务服务(Java Transaction Service,简称JTS) JTA和JTS一起,为J2EE...(如Tomcat、Jetty以及普通的java应用) JTA提供了 java.transaction.UserTransaction,里面定义了下面的方法: begin:开启一个事务 commit:提交一个事务...)的区别在于:XA可以参与JTA事务,而且不支持自动提交 下面是一个依赖于J2EE容器的,使用JTA事务的转账操作(需要通过JNDI方式获取UserTransaction与DataSource) public...) 一个事务管理器(Transaction) 1.3 容器事务 容器事务主要是J2EE应用服务提提供的,容器事务大多基于JTA实现,是基于JNDI的,相当复杂的API实现 EJB实现了相关服务 二、
3.Java事务的类型 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。...因此,数据库操作的事务习惯上就称为Java事务。 使用 JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务中。 JDBC 事务的一个缺点是事务的范围局限于一个数据库连接。...2.JTA(Java Transaction API)事务 JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。...使用EJB CMT的另外一个好处就是程序员无需关心JTA API的编码,不过,理论上我们必须使用EJB. 三种Java事务差异? 1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。...一般说来,在单个JDBC 连接连接的情况下可以选择JDBC事务,在跨多个连接或者数据库情况下,需要选择使用JTA事务,如果用到了EJB,则可以考虑使用EJB容器事务。
Java有几种类型的事务? Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。...通过JDBC事务,我们可以将多个SQL语句放到同一个事务中,保证其ACID特性。JDBC事务的主要优点就是API比较简单,可以实现最基本的事务操作,性能也相对较好。...2.JTA事务 JTA(Java Transaction API)提供了跨数据库连接(或其他JTA资源)的事务管理能力。...这意味着,如果我们使用JTA,就需要同时使用JTA和JNDI。 JTA本身就是个笨重的API,通常JTA只能在应用服务器环境下使用,因此使用JTA会限制代码的复用性。...3)、Java持久化API事务(JPA) Hibernate多年来一直是事实上的Java持久化标准,但是现在Java持久化API作为真正的Java持久化标准进入大家的视野。
对于只操作单一数据源的应用,可以通过本地资源接口实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型应用,则必须使用全局事务 JTA (Java Transaction API)。...事务编程接口(JTA:Java Transaction API)和 Java 事务服务 (JTS:Java Transaction Service) 为 J2EE 平台提供了分布式事务服务。...我们可以将资源管理器看做任意类型的持久化数据存储;事务管理器承担着所有事务参与单元的协调与控制。...根据所面向对象的不同,我们可以将 JTA 的事务管理器和资源管理器理解为两个方面:面向开发人员的使用接口(事务管理器)和面向服务提供商的实现接口(资源管理器)。...官方网站“Java Transaction API Specification”提供了详细的 JTA 信息、包括版本, 规范等,感兴趣的读者可以参考。
它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。 5. Java IDL/CORBA: 在Java IDL的支持下开发人员可以将Java和CORBA集成在一起。...他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。...JTA(Java Transaction Architecture): JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。 11....该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。...MIME的字节流可以被转换成Java对象或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
5.Java IDL/CORBA: 在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。...他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。...10.JTA(Java Transaction Architecture): JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。...该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTSspecification的Java映像。...MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
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)事务、容器事务。
JTA规范事务模型 Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS:Java Transaction Service),为J2EE平台提供了分布式事务服务...某种程度上,可以认为JTA规范是XA规范的Java版,其把XA规范中规定的DTP模型交互接口抽象成Java接口中的方法,并规定每个方法要实现什么样的功能。...下面介绍一下在JTA规范中,模型中各个组件的作用: 事务管理器(transaction manager): 处于图中最为核心的位置,其他的事务参与者都是与事务管理器进行交互。...将事务管理器直接整合进应用中,不再依赖于application server。 资源管理器(resource manager): 理论上任何可以存储数据的软件,都可以认为是资源管理器RM。...因为在java程序中,我们都是通过client来于RM进行交互的,例如:我们通过mysql-connector-java-x.x.x.jar驱动包,获取Conn、执行sql,与mysql服务端进行通信;
1 JTA规范 Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS:Java Transaction Service),为J2EE平台提供了分布式事务服务...某种程度上,可以认为JTA规范是XA规范的Java版,其把XA规范中规定的DTP模型交互接口抽象成Java接口中的方法,并规定每个方法要实现什么样的功能。...将事务管理器直接整合进应用中,不再依赖于application server。 资源管理器(resource manager): 理论上任何可以存储数据的软件,都可以认为是资源管理器RM。...JTA规范是Java扩展包,在应用中需要额外引入相应的jar包依赖 javax.transaction 可以与spring声明式事务管理功能,因此我们可以通过一个简单@Transactional注解,即可实现分布式事务的功能。
三、Java事务的类型 Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。...2、JTA(Java Transaction API)事务 JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。...这使得我们可以简单的指定将哪个方法加入事 务,一旦指定,容器将负责事务管理任务。这是我们土建的解决方式,因为通过这种方式我们可以将事务代码排除在逻辑编码之外,同时将所有困难交给J2EE容 器去解决。...使用EJB CMT的另外一个好处就是程序员无需关心JTA API的编码,不过,理论上我们必须使用EJB. http://hovertree.com/menu/java/ 四、三种Java事务差异...一般说来,在单个JDBC 连接连接的情况下可以选择JDBC事务,在跨多个连接或者数据库情况下,需要选择使用JTA事务,如果用到了EJB,则可以考虑使用EJB容器事务 发布者:全栈程序员栈长,转载请注明出处
它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。 Java IDL/CORBA: 在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。...他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。...JTA(Java Transaction Architecture): JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。...该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。...大多数应用都可以不需要直接使用JAF。
如果使用WAS的JTA支持,把它的属性改为WebSphere对应的TransactionManager。 ...在tomcat下,是没有分布式事务的,不过可以借助于第三方软件jotm(Java Open Transaction Manager )和AtomikosTransactionsEssentials实现,...Transaction API,顾名思义JTA定义了一组统一的事务编程的接口,这些接口如下: XAResource XAResource接口是对实现了X/Open CAE规范的资源管理器 (Resource...Transaction Transaction接口是一个事务实例的抽象,通过它可以控制事务内多个资源的提交或者回滚。二阶段提交过程也是由Transaction接口的实现者来完成的。...这个统一编程接口就是上图中的System Contracts和Client API。下面的UML类图将完美诠释资源适配器。
使用 Apache Geode API 一旦配置了 Apache Geode Cache 和 Regions,它们就可以被注入并在应用程序对象中使用。..." p:region-ref="SomeRegion"/> 配置模板后,开发人员可以将其与GemfireCallbackApache Geode一起使用,Region而无需处理检查异常、线程或资源管理问题...7.4.全局,JTA 事务管理 Apache Geode 也可以参与基于 JTA 的全局事务,例如由 Java EE 应用服务器(例如 WebSphere 应用服务器(WAS))使用容器管理事务(CMT...但是,无论您是在具有支持“最后资源”的开源 JTA 事务管理实现的独立环境中使用 Apache Geode ,还是在托管环境(例如 Java EE AS,如 WAS)中使用 Apache Geode,Apache...有关将Spring 的事务管理与 JTA 结合使用的更多详细信息,请参见此处。
事务管理器 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。...Java持久化API事务(JPA) Hibernate多年来一直是事实上的Java持久化标准,但是现在Java持久化API作为真正的Java持久化标准进入大家的视野。...Java原生API事务 如果你没有使用以上所述的事务管理,或者是跨越了多个事务管理源(比如两个或者是多个不同的数据源),你就需要使用JtaTransactionManager: transaction.jta.JtaTransactionManager"> 将事务管理的责任委托给javax.transaction.UserTransaction和javax.transaction.TransactionManager对象,其中事务成功完成通过UserTransaction.commit
Spring为事务管理提供了一个始终如一的抽象,优点如下: 提供不同事务的API但是一致的编程模型,如Java事务API(JTA)、JDBC、Hibernate和Java持久化API(JPA)。...支持声明式事务 比JTA更简单的编程式事务API 与Spring数据访问抽象的优秀集成 Spring框架事务模型的优点 习惯上,Java EE 开发者有两种事务管理方式:全局事务管理、本地事务管理,两者都有很大的局限性...应用服务器通过JTA管理全局性事务,而JTA API是非常笨重的。另外,一个JTA的UserTransaction通常需要从JNDI中加载资源,意味着使用JTA必须配置JNDI。...使用首选的声明式事务模型,开发者仅需要编写一点点与事务管理关联的代码,因此,不需要依赖Spring框架事务的API或其他事务API。...后一种情况的含义是,与Java EE事务上下文一样,事务状态与执行线程相关联。
file->project structure,配置当前项目的设置 发现问题:发现我当前使用的jdk15。为什么我会使用的是jdk15而不是别的。 ...Finally, Java SE has included a subset of JTA (Java Transaction API) since Java SE 1.3 and a subset of...JTA consists of two packages that play different roles and deserve different treatment: The javax.transaction.xa...The javax.transaction package defines a general transaction management API....For example, JTA added types in Java EE 7 that concern CDI.
子交易可以提交或回滚,而不需要整个交易提交或回滚。 JTA(Java Transaction API )规范不要求支持嵌套事务模型。大多数 JTA 实现只支持扁平事务模型。...Java Transaction API (JTA) Java Transaction API (JTA) 是Java平台上的一个事务处理规范,它为 Java 应用程序提供了一组统一的事务处理接口。...该图还显示了 JTA 与 Java事务服务(JTS)的关系。 JTA 组件被定义在 javax.transaction和 javax.transaction.xa 两个包内。...Java Transaction Service (JTS) 是 OTS 的 Java 映射, JTA 推荐使用 JTS 作为其底层事务系统的实现。...Java 应用服务器通过 JTA 接口访问事务管理功能,JTA 通过 JTS 与事务管理的实现进行交互。同样,JTS 可以通过 JTA XA 接口访问资源,也可以访问启用 OTS 的非 XA 资源。
Java EE标准定义了Java Transaction API(JTA),它为运行在Java EE兼容应用程序服务器上的应用程序提供事务管理。...此API为应用程序中的提交和回滚事务提供了一个方便的高级界面。例如,如果Java持久性API(JPA)与JTA一起使用,则开发人员不必在应用程序源码中编写跟踪SQL提交和回滚语句。...JTA API以独立于数据库的方式处理这些操作。...JTA有两种不同的方式来管理Java EE中的事务: 隐式/容器管理事务(Implicit or Container Managed Transaction:CMT):应用程序服务器管理事务边界并自动提交和回滚事务...开发人员可以使用称为“事务属性”的注释来覆盖方法级别的默认事务行为。 使用CMT的EJB不得使用任何与应用程序服务器的事务范围和边界冲突的JTA API方法。
Java 事务类型 JDBC 事务:用 Connection 对象控制的手动模式和自动模式; JTA(Java Transaction API)事务:与实现无关的,与协议无关的 API; 容器事务:应用服务器提供的...,且大多是基于 JTA 完成(通常基于 JNDI 的,相当复杂的 API 实现) 4....三种事务的差异 JDBC 事务:控制的局限性在一个数据库连接内,但是其使用简单。 JTA 事务:功能强大,可跨越多个数据库或多 DAO,使用比较复杂。...JTA 事务管理器(JtatransactionManager) 本管理器将事务管理的责任委托给 javax.transaction.UserTransactin 和 javax.transaction.TranasactionManager...声明式事务有助于用户将操作与事务规则进行解耦 基于 AOP 交由 Spring 容器实现 实现关注点聚焦在业务逻辑上 3.
在JDBC API中,java.sql.Connection类代表一个数据库连接。...2.1.JDBC API声明事务的示例代码如下: Hibernate对JDBC进行了轻量级的对象封装,Hibernate本身在设计时并不具备事务处理功能,平时所用的Hibernate的事务,只是将底层的...2.2.Hibernate中使用JDBC事务: Hibernate 使用JDBC transaction处理方式如下所示: 2.3.Hibernate中使用JTA事务: JTA(java Transaction...JTA具有的3个接口:UserTransaction接口、TransactionManager接口和Transaction接口,这些接口共享公共的事务操作。...在数据库表中加入一个version(版本)字段,在读取数据时连同版本号一起读取,并在更新数据时比较版本号与数据库表中的版本号,如果等于数据库表中的版本号则予以更新,并递增版本号,如果小于数据库表中的版本号就抛出异常