`
lzj520
  • 浏览: 212703 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spring+hibernate里session的管理

阅读更多
在spring+hibernate的时候,控制台提示“unclosed connection,forgot to call close() on your session?”
或者是[org.hibernate.jdbc.ConnectionManager] - <finalizing with closed connection>
那是因为有可能是你自己手动创建了session,比如:

private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
然后调用:

Session session = sessionFactory.openSession();
Query query = session.createQuery("from Login");

类似这样的单独使用hibernate时的用法,是需要手工去关闭session的。没有关闭的话就会收到那样的警告。

所以最好是使用spring管理的session,和OpenSessionInViewFilter,比如:
Session session =this.getSession();
然后在web.xml里加入
  <filter>
  <filter-name>OpenSessionInViewFilter</filter-name>
  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  </filter>
  <filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

其中在spring里注册的sessionfactory必须是id="sessionFactory",如果是id="SessionFactory"或者其他,会提示sessionFactory没有注册的错误,因为OpenSessionInViewFilter里注册的名必须为sessionFactory。

分享到:
评论

相关推荐

    springmvc+spring+hibernate

    Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向切面编程(AOP),简化了代码管理与模块化,而Hibernate则是持久层框架,负责数据库操作,提供了对象关系映射(ORM)功能...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(hibernateSession)); ``` 然后,在类中加入以下两个私有函数: ```java private SessionFactory lookupSessionFactory...

    struts+spring+hibernate实现图书修改和删除

    此外,Spring还可以与Hibernate集成,实现数据访问层的事务管理。 **Hibernate** Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,将Java对象和数据库记录进行映射,使得开发者可以使用面向对象的...

    Struts+Spring+Hibernate开发实例.pdf

    - **Session** 是Spring的事务管理中重要的概念,它通常与用户的会话相关联,通过它可以管理用户的会话信息和进行事务控制。 - **DAO(Data Access Object)** 是数据访问层的抽象,提供了数据访问的统一接口,...

    struts+spring+hibernate(mysql)用户登录及文件上传

    在这个项目中,"struts+spring+hibernate(mysql)用户登录及文件上传",开发者整合了这三个框架,并结合MySQL数据库实现了一个完整的用户管理系统,包括用户身份验证和文件上传功能。 首先,Struts是MVC(Model-View...

    Struts2+Spring+Hibernate+Jsp+Mysql5 项目申报系统.zip

    Spring的JDBC模板或者Hibernate的Session接口可以用来与MySQL进行交互。 在实际开发中,这五个组件协同工作,形成一个完整的三层架构:表现层(JSP)、业务层(Spring)和数据访问层(Hibernate)。Struts2接收用户...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    在Spring和Hibernate的整合中,Spring可以作为Hibernate的容器,管理SessionFactory和Transaction,这样我们就能够在Spring的管理下进行数据库操作。通过@PersistenceContext注解,Spring可以注入EntityManager,@...

    纯净的spring+hibernate+mysql

    Spring MVC的Controller接收这些信息,然后通过Hibernate的Session接口创建新的用户对象并保存到数据库。 2. **验证**:在注册过程中,可能需要验证用户名的唯一性,这通常通过查询MySQL来实现,确保没有重复的...

    现有Mysql数据库,写Spring + Hibernate的配置文件

    Spring作为一个全面的开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,而Hibernate则是一个优秀的对象关系映射(ORM)框架,使得Java开发者可以更加方便地操作数据库。在本案例中,我们将探讨...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    通过这种方式,开发人员可以利用Struts2的控制层、Spring的服务层管理和依赖注入,以及Hibernate或Ibatis的数据访问能力,构建出高效且可扩展的Web应用。这些整合示例可以帮助初学者快速理解各个组件的交互方式,...

    Spring+Hibernate整合

    总的来说,"Spring+Hibernate整合+SQL Server2008"是一个典型的Java企业级应用开发模式,它涵盖了Spring框架的管理能力、Hibernate的ORM功能以及SQL Server的数据库服务,为开发人员提供了一种高效、稳定且易于维护...

    Spring+hibernate整合源代码

    1. **依赖注入**:Spring 提供的 DI(Dependency Injection)机制可以帮助管理 Hibernate SessionFactory 和 Session 实例,避免手动创建和管理这些对象。在配置文件中定义 SessionFactory 的 Bean,然后通过注解或 ...

    webwork+spring+hibernate 开发资料

    DAO通过Spring管理的HibernateSession与数据库进行交互,执行查询和更新操作。整个过程流畅且高效,使得开发者能专注于业务逻辑,而非底层实现。 在提供的文档“webwork+spring+hibernate架构.doc”中,可能详细...

    ZK+spring+hibernate的整合

    ZK、Spring和Hibernate是Java开发中的三大重要框架,它们分别在用户界面、依赖注入与事务管理、持久层操作方面发挥着关键作用。将这三者进行整合,可以构建出高效、稳定且易于维护的企业级应用。以下是对这三者整合...

    SSH(Struts+Spring+Hibernate)结合项目简单实例

    同时,Hibernate的SessionFactory和Session对象也会在Spring中配置,使得业务层可以方便地进行数据库操作。Spring还负责管理Hibernate的事务,确保数据一致性。 总结来说,SSH框架组合提供了一个强大且灵活的Java ...

    strut+spring+hibernate注册登录系统

    这个"Strut+Spring+Hibernate注册登录系统"是一个基础的Web应用程序,旨在帮助初学者理解如何将这三个框架集成并实现用户管理功能。 Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,负责...

    dwr+spring+hibernate模板.zip

    - 整合DWR与Hibernate:DWR可以调用Spring管理的bean,这些bean可以进一步调用Hibernate的Session进行数据库操作。通过这种方式,DWR可以直接与数据库交互,实现动态的数据展示和更新。 总结起来,DWR+Spring+...

    Spring+Hibernate+MySql的应用实例

    在Spring+Hibernate的集成中,Spring可以作为Hibernate的事务管理器,处理事务的开始、提交、回滚等操作。通过SessionFactory和Session接口,Hibernate可以进行对象持久化,将Java对象转换为数据库中的记录。 **...

    Spring + Hibernate + Spring mvc +Ajax 整合

    Spring管理Hibernate SessionFactory,提供事务控制,并能通过声明式事务管理简化事务处理。此外,Spring还支持基于注解的Hibernate配置,使代码更加简洁。 Spring MVC与Ajax的结合则提高了用户体验。Ajax...

    非注解Springmvc+spring+hibernate 入门实例

    为了整合SpringMVC、Spring和Hibernate,你需要在Spring的配置文件中引入Hibernate的相关配置,如数据源、SessionFactory以及事务管理器。同时,你还需要配置一个Hibernate的本地SessionFactory Bean,以便Spring...

Global site tag (gtag.js) - Google Analytics