`
silentJesse
  • 浏览: 107504 次
  • 性别: Icon_minigender_1
  • 来自: 福建厦门
社区版块
存档分类
最新评论

在Spring中有了HibernateDaoSupport为什么使用 HibernateCallback

阅读更多
使用 HibernateCallback 的理由 , 在项目开发中,使用了框架集成,Spring,Hibernate。。。 在开发中多处用到了Session,在对Session的使用维护上,有几种看法。
1.getCurrentSession();
获得当前会话中的session,该session有容器自行维护管理,Spring可以代理事务。

2.this.getSession();
从当前的执行中获得或创建一个hibernate的session对象,自己关闭,释放连接资源。

3.openSession();
调用函数自行创建一个数据库的连接,并将其打开,在使用Spring操作非查询语句的请况下,Spring的事务对该session对象不起到事务管理的作用,所以该session对象应当由程序员自己关闭,释放连接资源。

在项目中使用到了Spring框架技术,就是说明,我们不想直接去获取,打开Session,开始一个事务,处理异常,提交一个事务,最后关闭一个Session,使用Spring后,这样的工作对我们来讲太过于繁琐,我们自己只专注于业务,不想去作这些重复而繁琐的操作。我们把这些责任全部委托给了Spring的HibernateTemplate,然后使用声明式的配置来实现这样的功能。如果我们通过类似getSession()这样的方法获得了Session,那就意味着我们放弃了上面所说的一切好处。在Spring的框架中HibernateTemplate提供了相当多有用的辅助功能。我们想用它提供的辅助功能。

但是HibernateTemplate包装了Hibernate的代码,使用了它以后不能直接访问到Session了。

HibernateTemplate提供HibernateCallback,就是为了满足这种使用了HibernateTemplate的情况下,仍然需要直接访问Session的需求而来的。它提供了在HibernateTemplate里面直接访问Session的能力,程序员不必人为的管理session对象, 这个就是使用HibernateCallback的原因。

分享到:
评论

相关推荐

    Spring整合Hibernate 详解.doc

    Spring为Hibernate提供了全面的集成方案,简化了DAO(Data Access Object)的开发,同时也支持其他ORM框架,使得应用能够在不同持久化技术间灵活切换。 6.5.1 Spring提供的DAO支持 Spring通过提供一系列的DAO抽象类...

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

    Spring为与Hibernate进行整合,提供了一个工具类HibernateDaoSupport HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交,它会自动完成SessionFactory的注入和事务的注入。 ...

    spring+hibernate详解

    本文详细介绍了Spring与Hibernate集成的过程,包括如何配置`SessionFactory`、使用`HibernateTemplate`简化数据操作、通过`HibernateDaoSupport`提高代码可维护性以及利用`HibernateCallback`实现更复杂的业务逻辑。...

    spring structs hibernate 整合

    同时,我们需要在Struts的配置文件`struts.xml`中声明Spring为Action的提供者,这样Struts就会将请求转发给Spring来处理。 接下来是Spring与Hibernate的整合。Spring提供了一种称为HibernateDaoSupport的抽象类,它...

    struts2.3+spring3.1.2+hibernate4.1.6 配置说明

    在这个配置说明中,开发者使用的是Struts2.3、Spring3.1.2和Hibernate4.1.6的版本。 首先,我们需要了解这三大框架的基本作用: - **Struts2**:是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,...

    Spring学习笔记

    Spring中的bean有完整的生命周期,包括创建、初始化、使用和销毁等阶段。可以通过配置init-method和destroy-method来定义初始化和销毁时的方法。lazy-init属性可以配置bean是否延迟初始化。 9. Annotation: ...

    spring_MVC源码

    -- 这里在配成spring,下边也要写一个名为spring-servlet.xml的文件,主要用来配置它的controller --> 19. *.do</url-pattern> 20. </servlet-mapping> 21. <welcome-file-list> 22. <welcome-file>index.jsp...

    ssh分页实现.

    这里使用了`HibernateCallback`接口,它允许在回调方法中执行原生的Hibernate操作,如设置分页参数`setFirstResult`和`setMaxResults`。 ### 四、PageBean类设计 为了封装分页信息,可以创建一个`PageBean`类,它...

    MyEclipse的整合Struts+Spring+Hibernate简单例子开发

    - `UserDaoImpl`: 实现了`UserDao`接口,利用Spring的`HibernateDaoSupport`简化了与Hibernate的交互,通过`HibernateCallback`执行查询操作。 - `index.jsp`: 用户输入界面,可能包含一个表单,提交用户ID。 - `...

    struts2+spring+hibernate分页显示完整代码

    在`MemberDaoImpl`实现类中,我们使用了Spring的`HibernateDaoSupport`类作为基类,它提供了对Hibernate操作的支持。`queryForPage` 方法通过`getHibernateTemplate().executeFind()`方法执行HQL查询,并利用`...

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

     使用BlobByteArrayType字段类型后,为什么我们就可以象一般的字段类型一样操作Blob字段呢?可以确定的一点是:BlobByteArrayType不可能逾越Blob天生的操作方式,原来是BlobByteArrayType数据类型本身具体数据访问...

    HibernateSpringStruts2整合开发中的一个分页显示方案.doc

    在`queryForPage`方法中,我们使用了`HibernateCallback`接口回调,通过`getHibernateTemplate().executeFind()`执行HQL查询并设置分页参数`setFirstResult`和`setMaxResults`。`getAllRowCount`方法则直接返回HQL...

    Hibernate+Spring+Struts2整合开发中的一个分页显示方案参考.pdf

    在Java Web开发中,使用Spring、Hibernate和Struts2进行整合是常见的技术栈,这三种框架结合可以构建出高效、可维护的业务应用。在这个场景下,分页显示是提高用户体验的重要一环,尤其是在处理大量数据时。下面将...

    Struts2,hibernate,Spring分页方法

    在Java EE环境中,Struts2、Hibernate和Spring这三大框架的整合为实现分页提供了一种高效的方法。下面将详细介绍如何在Struts2中结合Hibernate进行分页处理。 首先,我们需要在DAO层实现分页查询。在本例中,我们...

    struts+hibernate+spring

    在企业级应用开发中,Struts2、Hibernate 和 Spring(通常简称为 SSH 框架)是三个非常重要的技术栈。它们各自解决不同的问题,并且通过良好的集成可以构建出高效、稳定的应用系统。本文将详细介绍如何在 Struts2 + ...

    spring整合hibernate

    3. **模板方法模式**:Spring 为 Hibernate 提供了三种主要的支持方式:`HibernateDaoSupport`、`HibernateTemplate` 和 `HibernateCallback` 接口。其中,`HibernateTemplate` 是一个非常实用的工具类,它可以简化 ...

    Hibernate+Struts+Spring 实现的通用分页查询

    在Java Web开发中,使用Hibernate、Struts和Spring构建应用程序是一种常见的技术栈,这三个框架分别负责持久层、表现层和业务层的管理。在这个场景下,我们讨论的是如何利用这些框架实现通用的分页查询功能,这在...

    SSH整合技术

    异常处理在SSH项目中也是非常重要的,可以使用Spring的AOP特性,定义全局异常处理器,捕获并处理可能出现的异常,提供统一的错误信息反馈给用户,提高系统的健壮性。 总的来说,SSH整合技术提供了强大的企业级应用...

    spring struts2 hibernate 整合教程 详细入门

    接下来,我们将详细介绍如何在Spring + Hibernate + Struts2项目中实现分页功能。 ##### 4.1 DAO层设计 在DAO(Data Access Object)层,我们需要设计用于处理数据访问操作的接口和实现类。这里主要关注的是分页...

    HibernateS整合pring

    此外,`HibernateTemplate`还支持`HibernateCallback`接口,允许开发者在回调方法`doInHibernate(Session session)`中使用原生的Hibernate API,以应对更复杂的数据访问需求。这种方法确保了灵活性,即使在Spring的...

Global site tag (gtag.js) - Google Analytics