最近摸索了一下Hibernate与JDBC(iBATIS)事务整合问题,算是有点收获,写出来和大家讨论一下吧。。。
一般大家都会使用Spring声明型事务 transactionAttributes 为 PROPAGATION_REQUIRED
Hibernate 使用 HibernateTransactionManager 、JDBC(iBATIS) 使用 DataSourceTransactionManager
当需要将它们整合到一个事务中的时候
普通的做法是配置统一的DataSource, Hibernate与JDBC(iBATIS) 都使用HibernateTransactionManager
坛子里有篇帖子已经详细论述了这种整合方案 http://www.iteye.com/topic/11063?page=2
------------------------------------------------------
Hibernate与JDBC(iBATIS) 都使用DataSourceTransactionManager又可不可以呢?
普遍的看法是 NO! 认为DataSourceTransactionManager根本就不处理Hibernate的session,事务当然无法实现。。。
但事实是否真的如此呢?
答案同样是 NO! http://forum.springframework.org/archive/index.php/t-9878.html
Juergen Hoeller:
Just if you proxy your JDBC DataSource with a TransactionAwareDataSourceProxy (available since Spring 1.1 RC1) and pass that proxy to your LocalSessionFactoryBean, you could use DataSourceTransactionManager in combination with Hibernate.
也就是说配置 sessionFactory 的 useTransactionAwareDataSource 为 true
Hibernate与JDBC(iBATIS) 都使用 DataSourceTransactionManager 同样可以保证事务
原理就是保证了 connection 的唯一性。
分享到:
相关推荐
将Spring与Hibernate整合并使用事务管理,能进一步提升应用的稳定性和效率。下面我们将详细讲解如何进行Spring AOP整合Hibernate以及如何在其中使用事务。 1. **Spring AOP简介** 面向切面编程(AOP)是Spring框架...
将Hibernate与Spring整合可以充分利用两者的优点,提高开发效率并降低复杂性。 一、Hibernate概述 Hibernate是Java世界中领先的ORM框架之一,它允许开发者用Java对象来操作数据库记录,而无需编写SQL语句。通过配置...
本文将详细介绍SpringMVC与Hibernate整合所需的jar文件以及它们在整合过程中的作用。 首先,我们需要理解SpringMVC的核心组件。它包括DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、...
Spring框架则是一个全面的企业级应用开发平台,它不仅包含Spring MVC,还提供了依赖注入(DI)、AOP(面向切面编程)、事务管理、JDBC抽象、缓存、任务调度等多个核心功能。在全注解开发中,我们可以使用@Autowired...
它们各自负责不同的职责:Struts2用于控制应用程序的流程,Hibernate3则是优秀的对象关系映射(ORM)框架,Spring则提供全面的依赖注入(DI)和面向切面编程(AOP)功能,以及事务管理等企业级服务。将这三个框架...
总结来说,Spring 与 Hibernate 的整合主要涉及 SessionFactory 的配置、DAO 类的实现以及事务管理。通过 Spring 的 IoC 容器管理数据访问资源,可以使应用更加解耦,同时利用 Spring 的事务管理功能,可以简化事务...
**标题:“Hibernate与Spring整合”** 在Java开发中,Hibernate和Spring都是不可或缺的框架。Hibernate是一个优秀的对象关系映射(ORM)工具,它简化了数据库操作,而Spring框架则提供了全面的应用程序管理,包括...
**hibernate框架jar包整合** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的SQL语句。整合Hibernate框架到项目中,通常需要配置一...
Hibernate 则是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将 Java 对象与数据库表进行映射,使得开发者可以使用对象而不是 SQL 来操作数据库。 Spring 和 Hibernate 的整合主要涉及到以下几个方面:...
**EJB(Enterprise JavaBeans)与Hibernate的整合是Java企业级开发中的一项重要技术结合,主要目的是为了在EJB容器中充分利用Hibernate的持久化能力,提高数据管理的灵活性和效率。** EJB,全称为Enterprise ...
在本教程中,我们将深入探讨如何在Spring Boot项目中整合MyBatis和Hibernate这两个流行的ORM框架。Spring Boot因其简化配置和快速开发的能力而备受青睐,而MyBatis和Hibernate则是Java世界里常用的持久层解决方案。...
《Hibernate与Druid整合实战详解》 在Java Web开发中,Hibernate作为一款强大的ORM(对象关系映射)框架,能够简化数据库操作,而Druid则是一款高性能、灵活且功能丰富的数据库连接池。当两者结合使用时,可以...
Spring还提供了数据访问抽象,如JDBC模板和ORM集成,包括Hibernate。 **Hibernate4框架**: Hibernate4是持久化框架,主要用于简化Java对象与数据库之间的交互。它通过ORM(对象关系映射)技术,将数据库操作转化为...
Spring还包含了数据访问抽象,如JDBC模板和DAO支持,以及对Hibernate的集成,方便在Spring环境中使用Hibernate。此外,Spring MVC是Spring提供的一个Web MVC框架,可以与Struts2协同工作,提供另一种实现MVC设计模式...
它支持JDBC,并可以与Spring整合,实现事务管理和数据源配置。 JDBC(Java Database Connectivity)是Java标准的数据库连接接口,允许开发者直接操作数据库。在Hibernate等ORM框架下,JDBC作为底层支持,用于执行...
4. jdbcdriver.jar:根据所连接的数据库类型,可能包含相应的JDBC驱动,如mysql-connector-java.jar,用于建立Hibernate与数据库的连接。 5. log4j或slf4j.jar:日志记录库,Hibernate默认使用SLF4J作为日志接口,...
它通过配置文件或注解将Java类与数据库表关联起来,简化了数据库操作,使得开发者无需编写大量的JDBC代码即可实现数据的增删改查。 **Spring框架** 是一个全面的企业级应用框架,它提供了事务管理、AOP(面向切面...
《Spring与Hibernate整合详解》 在现代Java Web开发中,Spring和Hibernate是两个非常重要的开源框架,它们分别在依赖注入和对象关系映射(ORM)领域有着广泛的应用。Spring作为一个全面的轻量级应用框架,提供了...
【标题】:“Hibernate、Struts2与Spring的整合项目” 【描述】:“这是一个将Hibernate、Struts2和Spring三大框架集成在一起的项目示例。它展示了如何在实际开发中有效地结合这三个强大的Java技术,实现数据持久层...
"Spring与Hibernate整合"是为了实现业务逻辑层和数据访问层的高效协作。整合过程通常包括以下几个步骤: 1. **引入依赖**:首先,需要在项目中添加Spring和Hibernate的相关库。这通常通过Maven或Gradle的依赖管理来...