`

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  

相关推荐

    第24次课-1 Spring与Hibernate的整合

    HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交,它会自动完成SessionFactory的注入和事务的注入。 24.3 Spring对Hibernate的简化 24.3.5 HibernateDaoSupport ...

    Spring2.5和Hibernate3集成--学习spring aop ioc

    eclipse出不来自动补齐功能。 要在开头加上这二句: 1.xmlns:tx="http://www.springframework.org/schema/tx" 2....

    spring in action英文版

     5.6.2 自动代理事务  5.7 小结  第6章 远程调用  6.1 Spring远程调用概览  6.2 与RMI一起工作  6.2.1 连接RMI服务  6.2.2 输出RMI服务  6.3 使用Hessian和Burlap的远程调用  6.3.1 访问...

    Hibernate使用技巧汇总

    session.Flush() 强制数据库立即同步,当用事务时,不必用flush,事务提交自动调用flush 在session关闭时也会调用flush <br>4. Hibernate总是使用对象类型作为字段类型 5. XDoclet专门建立了...

    Spring的学习笔记

    八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:...

    spring2.5 学习笔记

    八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:...

    Spring中文帮助文档

    12.2.3. The HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器...

    Spring API

    12.2.3. The HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器...

    Spring.3.x企业应用开发实战(完整版).part2

    12.2.2 使用HibernateTemplate 12.2.3 处理LOB类型数据 12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis ...

    Spring3.x企业应用开发实战(完整版) part1

    12.2.2 使用HibernateTemplate 12.2.3 处理LOB类型数据 12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis ...

    Spring 2.0 开发参考手册

    12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 ...

    spring chm文档

    12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs ...

    《MyEclipse 6 Java 开发中文教程》前10章

    10.5.2.6 使用 HibernateTemplate 实现分页查询 254 10.6 小结 255 10.7 参考资料 255 10.7.1 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法 255 10.7.2 MyEclipse生成的Spring+Hibernate无法保存数据...

    SpringMVC+Hibernate全注解整合

    对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 mvc:annotation-driven --> <!-- 扫描包 --> <context:annotation-config/> *" /> ...

    ssh(structs,spring,hibernate)框架中的上传下载

     TfileDAOHibernate通过扩展Spring提供的Hibernate支持类HibernateDaoSupport而建立,HibernateDaoSupport封装了HibernateTemplate,而HibernateTemplate封装了Hibernate所提供几乎所有的的数据操作方法,如execute...

    spring学习笔记

    Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很...

Global site tag (gtag.js) - Google Analytics