hibernate的两种事务管理jdbc 和jta方式。下边说说两者的区别
一、说明一下jdbc和jta方式事务管理的区别:
JDBC事务由Connnection管理,也就是说,事务管理实际上是在JDBC Connection
中实现。事务周期限于Connection的生命周期之内
JTA 事务管理则由 JTA 容器实现,JTA 容器对当前加入事务的众多Connection 进
行调度,实现其事务性要求。JTA的事务周期可横跨多个JDBC Connection生命周期。
二、在了解jdbc和jta事务的基础上,再来讨论hibernate的两种事务
对于基于JDBC Transaction的Hibernate 事务管理机制而言,事务管理在Session 所依托的JDBC Connection
中实现,事务周期限于Session的生命周期。
对于基于JTA事务的Hibernate而言,JTA事务横跨可横跨多个Session。
三、hibernate中写法的不同
jdbc的写法
public void saveUser(){
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
session.close();
}
必须在session.close()之前commit或者rollback
jta写法
public void saveUser(){
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(user);
session.close();
Session session1 = sessionFactory.openSession();
session1.save(user1);
session.close();
tx.commit();
}
commit和rollback可以在session.close()之后执行.
同时应该注意的一点是,事务是不能嵌套的,在使用jta的事务的情况下,如果要让一个事务跨越两个
session,则必须在两个session的外层开始事务和完成事务。而不能再在session内部开始事务和完成事务。
转 http://www.blogjava.net/dreamstone/archive/2007/07/29/133077.html
分享到:
相关推荐
### 详解Hibernate事务处理机制 #### 一、引言 Hibernate作为一款优秀的对象关系映射(ORM)框架,在Java开发领域扮演着极其重要的角色。它不仅简化了数据持久化的复杂性,还提供了一系列强大的功能来支持高效的...
1. **JTA(Java Transaction API)**: 用于管理事务,确保数据一致性。 2. **JPA(Java Persistence API)**: 虽然不是必须,但Hibernate可以作为JPA的实现,因此有时会被一起使用。 3. **CGLIB或ASM**: 用于为...
而JTA则是Java平台中用于管理分布式事务的标准API。本文将详细介绍如何在MyEclipse环境中将这三者整合,实现一个完整的DEMO。 一、Spring框架 Spring的核心在于IoC容器,它负责管理应用对象的生命周期和依赖关系。...
一、Hibernate事务管理 在数据库操作中,事务确保了数据的一致性和完整性。Hibernate提供了四种事务隔离级别:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化...
在 Hibernate 中,事务管理可以基于 JDBC Transaction 或 JTA (Java Transaction API) 进行,这两种方式各有特点。 首先,Hibernate 默认的事务处理机制是基于 JDBC Transaction。这意味着在进行数据库操作时,...
在Hibernate中,事务可以通过配置为JDBC事务或JTA事务。默认情况下,如果没有明确配置,Hibernate会使用JDBC事务。配置JDBC事务的方式是在`hibernate.cfg.xml`中设置`transaction.factory_class`属性为`org....
Hibernate事务管理是Java开发中非常重要的一个环节,尤其是在企业级应用开发中,它与数据库的交互密切相关,确保数据的一致性和完整性。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了一种方便的方式来...
5. **事务管理**:Hibernate支持JTA和JDBC事务管理,为应用程序提供了强大的事务处理能力。 6. **缓存机制**:内置了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的),提高了数据访问速度。 **...
在Hibernate中,如果需要进行跨多个资源的事务管理,如同时操作数据库和消息队列,那么JTA就变得非常重要。它提供了统一的API来管理事务的开始、提交、回滚以及参与者的注册,使得应用程序可以透明地处理分布式事务...
4. Hibernate事务配置与API 在Hibernate配置文件中,可以指定默认的事务隔离级别,例如: ``` <property name="hibernate.connection.isolation">2</property> <!-- 读已提交 --> ``` Hibernate API提供了`...
标题中的“Spring3.1+Hibernate4.1+Atomikos3.9+MySql5.1+Tomcat5/6/7实现JTA事务管理”揭示了一个集成开发环境,用于构建分布式、事务一致性的Java应用程序。这个组合利用了Spring框架的依赖注入和AOP(面向切面...
### Hibernate事务处理详解 #### 一、事务处理概念与特性 事务处理是数据库操作中一个核心的概念,尤其在处理复杂的业务逻辑时,确保数据的一致性和完整性至关重要。Hibernate作为Java领域中广泛使用的对象关系...
#### 二、Hibernate事务管理机制 Hibernate 本身不实现事务逻辑,而是依赖于底层的数据源(JDBC 或 JTA)来实现事务管理。这意味着,当你使用 Hibernate 进行数据操作时,所涉及的事务要么基于 JDBC 的事务管理,要么...
默认情况下,Hibernate使用JDBC的局部事务,但在分布式系统中,通常会采用JTA进行全局事务管理。 **JDBC事务管理:** - `Session.beginTransaction()` 开启事务。 - 对象的CRUD操作。 - `session.getTransaction()....
在这个文件中,我们可以看到如何配置Hibernate的SessionFactory,如何将SessionFactory注入到DAO层,以及如何配置事务管理器(如HibernateTransactionManager),以实现Spring对Hibernate事务的控制。 `petclinic....
值得注意的是,尽管 Hibernate 提供了自己的事务管理 API,但在 JTA 环境中,通常建议使用容器提供的事务管理服务。 #### 五、异常处理 在处理 Hibernate 数据库事务时,正确处理异常至关重要。当出现异常时,需要...
Hibernate 支持JTA(Java Transaction API)和JDBC事务管理。 1. **JDBC事务**:适用于简单的应用程序,开发者直接使用Connection对象的commit()和rollback()方法来控制事务。 2. **JTA事务**:适合于应用服务器...
本文旨在深入探讨Hibernate事务管理机制,特别是JDBC Transaction与JTA Transaction在Hibernate中的实现方式及其区别。 #### 二、Hibernate事务管理配置 在使用Hibernate进行开发时,可以通过配置`hibernate....
Hibernate支持JDBC事务和JTA(Java Transaction API)事务,可以与Spring的事务管理机制集成,实现统一的事务策略。 在SSH事务配置中,提到的“通用性”是指通过合理配置,可以将事务管理应用到多个DAO(数据访问...
4. **配置Hibernate**:在Hibernate的配置文件`hibernate.cfg.xml`中,指定使用JTA事务管理器,例如`<property name="jta.platform">org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform...