`

hibernatetemplate自动事务

阅读更多

hibernatetemplate自动事务

 

在使用hibernatetemplate的时候,不配置spring事务 也能对数据库进行CRUD。

 

 

刚开始好奇怪,在过去不配置事务是不能对数据库进行CRUD的,而为什么在现项目中把所有的事务配置xml都删除后,还是可以对数据库进行操作。

 

为什么hibernatetemplate还是依然可以对数据库进行操作呢,

 

其实在hibernatetemplate中 是手动的hibernate事务。

 

首先是HibernateTemplate的定义: 

  1. public class HibernateTemplate extends HibernateAccessor implements HibernateOperations { ... }  



继承HibernateAccessor,我们再来看看HibernateAccessor,HibernateAccessor里最重要的就是设置SessionFactory 

再看HibernateOperations接口,HibernateOperations里定义了我们常用的get(...)、find(...)、save(...)等操作, 
其中最重要的就是Object execute(HibernateCallback action) throws DataAccessException; 

现在我们又多了一个接口:HibernateCallback,HibernateCallback回调接口,它里面只有一个方法的定义, 
Object doInHibernate(Session session) throws HibernateException, SQLException; 
基本上相关联的比较重要的东东我们提到了。 

 

  1. public Object execute(HibernateCallback action) throws DataAccessException {  
  2.   
  3.   先通过SessionFactory获取到Hibernate的Session对象  
  4.     
  5.   执行HibernateCallback的对象的doInHibernate(...)的方法  
  6.   看看上面我们的“分页查询Info表”的方法  
  7.     
  8.   关闭Session  
  9.   
  10.   返回查询结果  
  11.   
  12. }  


HibernateTemplate中的get(...)、find(...)、save(...)等方法,只不过是spring事先为我们实现了 
HibernateCallback接口而已 

 

分享到:
评论
3 楼 QQ624654852 2012-04-25  
2 楼 iq527 2010-09-14  

请教下,我看了下spring2.5.5中HibernateTemplate的源码,但是都没找到事务提交的代码,不知道兄台是否知道使用ht的时候,何时自动提交事务的?
1 楼 nneverwei 2010-08-16  

相关推荐

    基于HIbernateTemplate的代码自动生成

    `HibernateTemplate`内部处理了事务管理和异常转换,使得开发者可以专注于业务逻辑,而不是底层的数据库操作。 接下来,关于代码生成,它是一种自动化编程技术。在本例中,可能是通过一个工具或者脚本来实现,根据...

    HibernateTemplate的用法总结

    3. **事务管理**:虽然HibernateTemplate简化了事务管理,但在复杂的应用场景下仍然需要仔细设计事务边界。 #### 六、总结 通过上述介绍可以看出,HibernateTemplate为开发者提供了一个高效、简洁的方式来操作...

    关于使用HibernateTemplate

    1. **事务管理**:`HibernateTemplate`提供了内置的事务管理机制,开发者无需手动开启和关闭事务,这大大减少了出错的可能性,并且使得代码更加简洁明了。 2. **Session管理**:传统的Hibernate使用方式通常需要显式...

    HibernateTemplate详细描述以及使用范围

    2. **事务管理**:通过`HibernateTemplate`可以方便地处理事务边界问题,实现细粒度的事务控制。 3. **批处理操作**:支持批量执行SQL语句,优化数据库访问性能。 4. **自定义查询**:支持HQL(Hibernate Query ...

    HibernateTemplate类的使用

    如果`doInHibernate`方法中发生了异常,则`HibernateTemplate`会自动回滚事务;如果没有异常,则提交事务。 #### 四、示例代码分析 以下是一段示例代码,旨在演示如何使用`HibernateTemplate`进行多个数据库操作,...

    对hibernate的封装 HibernateTemplate

    1. **事务管理**:HibernateTemplate自动管理Hibernate Session和Transaction,确保在事务边界内的操作原子性和一致性。无需手动开启和关闭Session,也不用关心事务的回滚和提交。 2. **异常转换**:它将Hibernate...

    spring hibernatetemplate

    问题的关键在于,`HibernateTemplate`并不自动管理事务边界。在Hibernate中,当调用`Session`的`beginTransaction`方法时,实际上创建了一个JDBC级别的事务。但是,如果在`HibernateTemplate`的`execute`方法中手动...

    Spring控制Hibernate中的事务传播特性与隔离级别操作.docx

    1. **事务管理**:HibernateTemplate自动处理事务的开启、提交、回滚,开发者无需手动管理事务边界。 2. **简化操作**:它封装了Session的常用方法,如删除(delete)、保存(save或saveOrUpdate)、更新(update)...

    spring学习之八--Hibernate编程式事务

    在这个例子中,如果在事务回调方法中抛出未检查异常(继承自RuntimeException的异常)或者受检异常(需要在方法签名中声明的异常),那么事务将会自动回滚。否则,当事务回调方法正常结束时,事务会自动提交。 然而...

    spring事务管理5种方法

    5. 自动事务管理: Spring在某些特定场景下,如JdbcTemplate和HibernateTemplate,会自动开启和提交事务,无需显式声明。这是基于模板方法的设计模式,简化了数据访问层的代码。 每种事务管理方法都有其适用场景,...

    HibernateTemplate及generator用法.doc

    `HibernateTemplate`的优点在于它能自动处理事务、异常和Session管理,使得代码更简洁,降低了出错的可能性。同时,它提供的方法可以直接处理集合操作,简化了开发流程。因此,在SSH或SSH2框架中,使用`...

    SpringAOP整合Hibernate并使用事务

    AOP代理可以在方法调用前后自动执行事务相关的操作,如开启、提交、回滚事务,大大提高了代码的整洁度。 3. **整合Spring与Hibernate** 整合Spring和Hibernate主要涉及以下步骤: - 引入依赖:确保项目中包含了...

    Spring整合hibernate(2)之基于HibernateTemplate的整合

    Spring整合Hibernate基于HibernateTemplate的方式,极大地简化了数据库操作,同时也让事务管理和代码的编写变得更加规范和高效。在实际项目中,可以根据需求进一步配置和优化,比如使用JPA的...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    5. **优化**: 为了提高性能,可以使用`HibernateTemplate`或`HibernateDaoSupport`,它们提供了事务安全的CRUD操作。 总之,Spring的声明式事务管理简化了事务处理,降低了代码的复杂性,而Hibernate的编程式事务...

    Spring延迟加载和声明式事务处理最终解决方案(修正版)

    延迟加载允许在需要时才加载关联的对象,而声明式事务处理则使得事务管理更加自动化,无需在代码中显式处理。 在Spring与Hibernate整合时,延迟加载功能可能会遇到问题,因为Spring通过HibernateTemplate或JPA的...

    spring事务精髓

    在JDBC中,事务是基于Connection对象进行管理的,通常需要手动调用`setAutoCommit(false)`来禁用自动提交,然后在适当的时候调用`commit()`或`rollback()`来完成事务操作。这种方式需要开发者显式地控制事务的边界,...

    spring3hibernate4注解式事务管理

    如果方法内的任何操作抛出异常,Spring会自动回滚事务;如果没有异常,事务会在方法结束时被提交。 接下来,我们来看看Hibernate 4。Hibernate是一个强大的ORM(对象关系映射)框架,它允许开发者以面向对象的方式...

    spring分别与jdbc和hibernate结合的事务控制--案例

    例如,在Service层的方法上添加此注解,Spring会在方法执行前后自动处理事务的开启和提交,如果方法中发生异常,Spring会回滚事务。这种方式大大简化了代码,避免了手动管理事务的复杂性。同时,Spring还提供了编程...

    spring 事务配置

    ### Spring 事务配置详解 #### 一、Spring 事务配置概览 ...无论是使用 JDBCTemplate 还是 HibernateTemplate,Spring 都能够提供强大的事务支持。对于开发人员来说,理解这些基本的概念和配置方式是非常重要的。

    spring事务支持

    在资源管理方面,Spring通过高层API如`JDBCTemplate`和`HibernateTemplate`简化了数据库操作,它们负责资源的创建、管理和事务同步。这些模板类封装了原始的JDBC或ORM API,使得开发者可以专注于业务逻辑,而不必...

Global site tag (gtag.js) - Google Analytics