`
dreamstone
  • 浏览: 288994 次
  • 来自: ...
文章分类
社区版块
存档分类

hibernate的两种事务管理jdbc 和jta方式

阅读更多
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内部开始事务和完成事务。
分享到:
评论

相关推荐

    Hibernate事务

    Hibernate 事务管理是 ORM 框架中的重要组成部分,它负责确保数据操作的一致性和完整性。...在实际开发中,理解并熟练掌握这两种事务管理方式,对于编写健壮的、高性能的 Hibernate 应用至关重要。

    详解Hibernate事务处理机制

    Hibernate提供了两种主要的事务处理模式:JDBC事务管理和JTA事务管理。 - **JDBC事务管理**:这是最基本的事务管理方式,适用于单个应用程序上下文中。它通过设置连接的自动提交属性为`false`来开启事务,并在提交...

    hibernate缓存和事务

    Hibernate 支持JTA(Java Transaction API)和JDBC事务管理。 1. **JDBC事务**:适用于简单的应用程序,开发者直接使用Connection对象的commit()和rollback()方法来控制事务。 2. **JTA事务**:适合于应用服务器...

    Hibernate4实战 之第五部分:Hibernate的事务和并发

    Hibernate 本身不实现事务逻辑,而是依赖于底层的数据源(JDBC 或 JTA)来实现事务管理。这意味着,当你使用 Hibernate 进行数据操作时,所涉及的事务要么基于 JDBC 的事务管理,要么基于 JTA (Java Transaction API)...

    spring2.5 hibernate3.2 事务

    在Spring框架中,事务管理分为编程式事务管理和声明式事务管理两种方式。编程式事务管理通过调用`PlatformTransactionManager`接口的方法来手动开始、提交、回滚事务。而声明式事务管理则是通过配置元数据(如XML或...

    课程hibernate的事务和并发.pdf

    首先,Hibernate在事务处理上支持两种方式:JDBC连接和JTA(Java Transaction API)资源。它并不添加额外的锁定行为,而是依赖于底层数据库的事务隔离级别。Hibernate通过自动版本管理来辅助并发控制,但不会改变...

    spring,struts,hibernate,事务

    Spring 提供了两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中显式调用开始、提交、回滚等事务操作,而声明式事务管理则通过AOP(面向切面编程)来实现,只需在方法或类级别上进行...

    hibernate的事务和并发资料.pdf

    首先,Hibernate支持两种类型的事务管理:JDBC连接管理和JTA(Java Transaction API)资源管理。它并未添加额外的锁定行为,而是依赖于数据库的事务隔离级别。自动版本管理是Hibernate提供的一项特性,用于处理并发...

    Spring3.0+Hibernate+Atomikos多数据源分布式事务管理

    总的来说,Spring 3.0、Hibernate和Atomikos的组合提供了一种强大且灵活的方式来处理多数据源的分布式事务,使开发者能够构建高度可用和可扩展的企业级应用。通过深入理解这些技术的原理和实践,开发者可以更好地...

    Hibernate入门

    综上所述,Hibernate支持两种类型的事务管理:JDBC Transaction和JTA Transaction。JDBC Transaction适用于简单的事务处理,而JTA Transaction则更适合于复杂、分布式的事务场景。根据应用的具体需求选择合适的事务...

    hibernate4基本配置方式详解

    在处理数据库连接时,有两种主要方式:JDBC连接和数据源(DataSource)。JDBC配置涉及数据库驱动、URL、用户名和密码,如示例所示。而数据源是更高级的连接管理方式,它允许更高效和灵活的连接池管理。例如,对于...

    hibernate+tomca5.5t+JOTM 2.10 JTA配置

    JTA是Java EE平台的一部分,提供了一种统一的方式来处理事务,无论底层数据库或资源管理系统是什么。 配置步骤大致如下: 1. **安装与下载**:首先,你需要下载Hibernate、Tomcat 5.5、JOTM及其依赖库。通常,这些...

    Hibernate 50个 英文面试题和答案

    Hibernate支持JTA(Java Transaction API)和JDBC事务管理。通过SessionFactory的`beginTransaction()`、`commit()`和`rollback()`方法进行事务控制。 以上仅为部分面试题及解答,涵盖了Hibernate的基础概念、优点...

    hibernate课件

    Hibernate支持JDBC和JTA两种事务管理方式,可以根据应用需求选择合适的事务隔离级别和回滚策略。 6. Hibernate与Spring整合: 在IBMHibernateAndSpring.ppt中,可能讲解了如何将Hibernate集成到Spring框架中,...

    hibernate源码release-4.1.4.Final版

    Hibernate支持JTA和JDBC两种事务管理方式。在Java EE环境下,推荐使用JTA进行分布式事务控制;而在Java SE环境中,通常采用JDBC事务管理。 六、持久化操作 Hibernate提供了save()、update()、merge()和delete()方法...

    hibernate 开发文档发布

    Hibernate支持JTA和JDBC两种事务管理方式,允许开发者根据应用需求选择合适的事务隔离级别和回滚策略。在3.1.x版本中,对事务处理的异常处理和回滚逻辑进行了细化,提高了系统的稳定性和可靠性。 七、方言支持 ...

    hibernate第一个hibernate

    Hibernate支持JTA和JDBC两种事务管理方式。通常,对于小型项目,可以使用`Session.beginTransaction()`和`Transaction.commit()`进行本地事务管理。 9. 性能优化: Hibernate提供了缓存机制,如一级缓存(Session...

    对Hibernate事物的理解

    Hibernate提供了两种事务管理方式:编程式事务管理和声明式事务管理。 #### 2.1 编程式事务管理 在编程式事务管理中,开发者需要显式地开启、提交、回滚事务。通常在Session的beginTransaction()、commit()、...

    spring_如何管理事务的

    Spring支持两种类型的事务管理方式:编程式事务管理和声明式事务管理。 #### 二、编程式事务管理 编程式事务管理允许开发人员通过编程的方式直接控制事务的开始、提交或回滚。这种方式相对灵活,但也存在一些缺点...

    Hibernate存储Clob字段的方式总结

    以上就是Hibernate存储Clob字段的两种常见方式的总结。在实际开发中,可以根据需求选择使用String直接映射Clob的方式或者使用Clob类型处理方式,并注意Hibernate session的创建和管理方法,以保证代码的简洁性与效率...

Global site tag (gtag.js) - Google Analytics