首先是HibernateTemplate的定义:
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;
基本上相关联的比较重要的东东我们提到了。
接下来我们来看看HibernateTemplate的实现
通常我们写数据库操作时都如下:
--------------------------------------
/** 插入一个Info对象 */
public void insertInfo(Info info) {
this.getHibernateTemplate().save(info);
}
/** 分页查询Info表 */
public List queryInfoList(int pageSize, int startRow) {
final int pageSize1 = pageSize;
final int startRow1 = startRow;
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
public List doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(FIND_ALL_INFO);
query.setFirstResult(startRow1);
query.setMaxResults(pageSize1);
return query.list();
}
});
}
这里面到底发生了什么事情呢?看看HibernateTemplate中的execute(...)的实现
(注:为了简单起见,先抛出事务什么的...)
---------------------------------------
public Object execute(HibernateCallback action) throws DataAccessException {
先通过SessionFactory获取到Hibernate的Session对象
执行HibernateCallback的对象的doInHibernate(...)的方法
看看上面我们的“分页查询Info表”的方法
关闭Session
返回查询结果
}
HibernateTemplate中的get(...)、find(...)、save(...)等方法,只不过是spring事先为我们实现了
HibernateCallback接口而已
-----------------------------------------
HibernateTemplate就如同它的名字一样,运用了模板方法的模式,只是spring的运用方式实现是高明!佩服!
景仰!
分享到:
相关推荐
在Spring框架中,`HibernateTemplate`是一个非常重要的组件,它为开发者提供了与Hibernate持久化库交互的便捷方式。然而,正如描述中所指出的,直接使用`HibernateTemplate`进行事务管理并不总是最佳实践,尤其是在...
《Spring与Hibernate整合:深入理解HibernateTemplate》 在Java企业级开发中,Spring框架和Hibernate持久层框架的结合使用是常见的技术选型。本篇将深入探讨Spring与Hibernate的集成,特别是Spring提供的...
标题中的"Spring_2000_Spring_Hibernate_HibernateTemplate"显然指的是一个关于Spring框架、Hibernate ORM框架以及其在2000年左右的版本或应用方式的专题。在这个主题下,我们将深入探讨Spring框架的核心特性,以及...
在Spring框架中,整合Hibernate是常见的操作,Spring通过其强大的依赖注入(DI)特性,能够帮助我们更好地...通过理解和实践这个例子,你可以更好地掌握Spring的DI机制以及如何利用HibernateTemplate简化数据库操作。
### HibernateTemplate概述与核心功能详解 #### 一、引言 在Java开发领域,特别是企业级应用开发中,数据持久层的设计与实现至关重要。...希望本文能帮助读者更好地理解和掌握`HibernateTemplate`的使用技巧。
根据给定的信息,我们可以深入探讨Spring框架中与Hibernate集成的相关知识点,特别关注“HibernateDaoSupport”类及其在Spring环境中的应用。...这些内容有助于更好地理解和运用Spring框架与Hibernate的集成开发。
Spring 和 Hibernate 是两个非常重要的 Java 开发框架,它们在企业级应用开发中有着广泛的应用。...通过学习和实践这些代码,你可以更好地理解和掌握 Spring 和 Hibernate 整合的细节,提升你的 Java Web 开发能力。
### HibernateTemplate 分组统计知识点详解 #### 一、概述 在Java Web开发中,尤其是在使用...这不仅有助于更好地理解和掌握Spring与Hibernate的集成方式,同时也为解决实际项目中的复杂数据处理问题提供了有效途径。
4. **Spring与Hibernate的集成**: Spring通过HibernateTemplate和HibernateDaoSupport简化了Hibernate的使用。`spring集成hibernate配置文件.txt`可能包含了整合步骤、事务配置以及如何处理SessionFactory和Session...
《Spring ORM框架详解》 Spring ORM(Object-Relational Mapping)是Spring框架的重要组成部分,它为开发者提供了在Java应用中集成各种ORM框架的...理解并掌握Spring ORM,对于提升Java企业级应用开发的能力至关重要。
首先,我们需要理解Spring如何管理和控制Hibernate。在Spring中,我们通常使用`LocalSessionFactoryBean`来创建Hibernate的SessionFactory,并通过`HibernateTemplate`或`SessionFactory`接口进行数据访问操作。`...
**HibernateTemplate** 是 Spring 框架中用于简化 Hibernate 使用的一个工具类。它通过 AOP(面向切面编程)的思想,封装了大量的 CRUD(创建、读取、更新、删除)操作,使得开发者能够更加专注于业务逻辑的实现,而...
8. **Spring 驱动Hibernate的实现**:Spring整合Hibernate,提供了SessionFactory的管理、事务绑定以及DAO模板(HibernateTemplate)。这使得应用能够以统一的方式使用Hibernate,而无需直接操作SessionFactory或...
再者,Spring 2.0还包含了一个强大的数据访问层,支持JDBC、ORM框架(如Hibernate和JPA)以及模板类,如JdbcTemplate和HibernateTemplate。这些工具使得数据库操作更加便捷和安全,同时降低了与数据库交互的复杂性。...
这个"springmvc spring hibernate整合Demo"旨在帮助初学者理解如何将这三个框架协同工作,实现一个完整的CRUD(创建、读取、更新、删除)应用。 Spring MVC 是 Spring 框架的一部分,专门用于构建Web应用程序。它...
此外,Spring 2.0还加强了对JDBC的支持,引入了JdbcTemplate和HibernateTemplate,简化了数据库操作,减少了代码中的SQL硬编码。 "spring20英文.pdf"很可能是Spring 2.0的官方英文文档,包含了详细的框架介绍、API...
你将学习如何配置Hibernate SessionFactory,使用Spring的HibernateTemplate或SessionFactoryBean来管理Hibernate会话。此外,还会讲解如何在Spring中实现事务管理,以确保数据的一致性和完整性。 通过这五个章节的...
当Spring和Hibernate结合使用时,通常会通过Spring的HibernateTemplate或HibernateDaoSupport类进行集成。HibernateTemplate是Spring提供的一个抽象层,它包装了Hibernate的Session,提供了事务安全的操作,简化了...
2. **spring_1600_hibernate_hibernateTemplate**:Spring的HibernateTemplate是一个过时但常用的工具类,用于简化与Hibernate的数据访问操作。它封装了常见的数据库操作,如查询、更新、删除等,减轻了开发者的工作...
为了更便捷地使用Hibernate,Spring框架提供了一系列工具类来简化其操作流程,其中`HibernateTemplate`就是其中一个非常重要的组件。本文将详细介绍`HibernateTemplate`的基本概念、工作原理以及如何正确使用它来...