`
yangbl928
  • 浏览: 5209 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring+hibernate数据库连接泄漏问题

    博客分类:
  • j2ee
阅读更多

 

Spring+hibernate 数据库连接泄漏问题

 

问题发现:

mysql 中用 show processlist 命令查看连接的连接状态。

当访问数据库时,如果发现有 sleep 状态的连接,还在创建的新的连接,说明连接泄漏了。

问题原因 :

spring 托管 hibernate 一般是在 Dao 层使用 HibernateDaoSupport 类与数据库进行同步,如果使用 HibernateDaoSupport 中的 getSession() 方法进行操作,则会导致数据库连接不能释放,如果设置了连接池,连接池就会得不到用完的连接(虽然查看该连接状态是 sleep, 但该连接不会放回到连接池中),多次后,会报连接池满的错误。

getSession() 这个方法本身其实返回的是与当前事务绑定的 Session 对象,在 HibernateDaoSupport 中使用, HibernateDaoSupport 本身是不负责对这个 Session 对象进行关闭的,所以在其中有一个对应的 releaseSession() 方法必须手动操作,用于关闭 Session  

解决方案:

getHibernateTemplate() 方法获得 hibernateTemplate 对象代替 session 对象进行数据库操作。

a)    getHibernateTemplate() .save()/delete() 等常用操作

b)    getHibernateTemplate ().bulkUpdate(sql 语句 ) 执行 sql 语句

c)     hibernate 回调:

                i.          getHibernateTemplete().executeFind()

               ii.          getHibernateTemplete().execute()

      

 

分享到:
评论

相关推荐

    简单的S2SH登陆代码,其中包含数据库(struts2+spring+hibernate)

    在数据库连接配置方面,Spring的`applicationContext.xml`或类似的配置文件中会包含数据库连接池和数据源设置。 5. **视图层**:视图通常是JSP页面,负责展示登录表单和结果。登录表单可能包含用户名和密码输入框,...

    strut+spring+hibernate注册登录系统

    同时,Spring还提供了与Hibernate的集成,使得数据库操作更加便捷。 Hibernate是一个对象关系映射(ORM)工具,它允许开发者使用Java对象来操作数据库。在这个注册登录系统中,Hibernate负责将用户信息持久化到...

    学生选课管理系统(java开发,框架是spring+struts1.2+hibernate)

    该系统采用经典的Java开发技术,结合Spring、Struts1.2和Hibernate三大框架,构建了一个功能完备、稳定可靠的选课平台。 首先,Spring框架作为核心的依赖注入(DI)和面向切面编程(AOP)容器,负责管理应用中的...

    Struts2+spring+hibernate中的proxool连接池配置

    总之,Proxool连接池在Struts2、Spring和Hibernate集成项目中提供了高效、可靠的数据库连接管理。正确配置和使用Proxool能够显著提升系统的性能和稳定性,同时降低了数据库的压力。通过监控和调整,开发者可以根据...

    struts2+spring+hibernate整合

    `hibernate.cfg.xml`用于配置Hibernate连接数据库的信息和映射文件位置。 2. **过滤器设置**:在`web.xml`中,除了Struts2的过滤器`FilterDispatcher`外,还添加了`ActionContextCleanUp`过滤器,用于在请求结束后...

    Xfire配置Web Service+Spring+Hibernate详细流程(转)

    Spring还提供了HibernateTemplate或JpaTemplate,它们是用于执行Hibernate操作的便捷工具,可以帮助我们避免直接操作Session,减少可能出现的资源泄露。 整合Spring和Hibernate的关键在于使用Spring的Transaction ...

    SSH集成 Struts+spring+hibernate集成

    Hibernate与Spring的集成则通常通过Spring的HibernateTemplate或SessionFactory来完成,Spring可以帮助管理Hibernate Session,避免资源泄露。 在实际项目中,SSH集成的优势体现在以下几个方面: - **模块化**:每...

    Struts2+Spring4+Hibernate4整合

    Struts2、Spring4和Hibernate4是Java Web开发中的三个核心框架,它们分别负责MVC模式中的表现层、业务层和服务层。SSH(Struts2、Spring、Hibernate)的整合是构建高效、灵活的企业级应用的常用方式。下面将详细阐述...

    webwork2.2.7+spring+hibernate分页查询

    - 数据库连接管理不当,导致资源泄露。 - 查询语句或分页参数设置不合理。 - **优化建议**: - 使用连接池管理数据库连接,确保连接的正确释放。 - 对查询语句进行优化,避免全表扫描。 - 在前端增加对分页参数...

    spring + hibernate development

    Spring是一个全面的Java企业级应用开发框架,而Hibernate是一个流行的Object-Relational Mapping(ORM)工具,使得开发者可以使用面向对象的方式处理数据库操作。 **Spring框架**:Spring的核心特性包括依赖注入...

    欣想电子商城(spring+Hibernate+sqlServer)

    总结,欣想电子商城项目是一个全面展示Java Web开发技术的实例,涵盖了Spring框架的使用、Hibernate的数据持久化和SQL Server的数据库管理。通过学习和研究这个项目,开发者可以深入了解这些技术的实战应用,提升...

    jsp源码项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5)

    该项目是一款基于Java技术栈开发的项目申报系统,主要使用的技术框架包括Struts2、Spring、Hibernate以及前端技术JSP,并且数据库采用的是MySQL5。这些技术都是Java Web开发领域的经典组合。 #### 二、关键技术框架...

    移动短信项目javaweb,Spring+Hibernate

    Spring+Hibernate】是一个基于Java Web技术开发的短信服务系统,其核心设计采用了Spring框架作为整体应用的结构管理和依赖注入容器,以及Hibernate作为对象关系映射(ORM)工具来处理数据库操作。这个项目旨在提供一...

    Struts+Spring+Hibernate整合开发框架搭建指南

    SSH(Struts1.3+Spring2.0+Hibernate3.1)是一个经典的Java Web开发框架,用于构建高效、可扩展的企业级应用。这个框架整合了三个强大的开源框架:Struts作为表现层,Spring作为控制层和业务层,以及Hibernate作为...

    详细的spring + hibernate +struts 整合方法

    - **资源泄漏**:不正确关闭数据库连接或Session,可能导致资源泄漏,需要确保在操作完成后及时释放。 为了解决这些问题,开发者应仔细阅读官方文档,理解每个框架的工作原理,并通过单元测试和集成测试来确保各...

    JavaEE spring和Hibernate整合(没有hibernate.cfg.xml)

    通过这种方式整合Spring和Hibernate,我们可以避免直接在代码中创建SessionFactory和Session,从而减少资源泄漏的风险,同时借助Spring的事务管理能力,简化事务处理。这种整合方式使得系统更加模块化,更易于维护和...

    Struts+Hibernate+Spring的基本流程

    3. Hibernate的配置文件(hibernate.cfg.xml)中,配置数据库连接、实体类映射等信息。Spring的配置文件中也需要配置SessionFactory,以便管理Hibernate的会话。 4. 在业务层(Service)和DAO层,使用Spring的注解...

    spring+hibernate

    2. **SessionFactory和Session管理**:Spring可以帮助管理Hibernate的SessionFactory和Session,确保正确关闭资源,防止内存泄漏。 3. **DAO层支持**:Spring的Template模式(如HibernateTemplate或JdbcTemplate)...

    Struts2+Hibernate开发环境搭建

    5. **配置Hibernate**:创建hibernate.cfg.xml,配置数据库连接信息和实体类映射。 6. **创建实体类**:定义Java类,并使用Hibernate注解进行映射。 7. **编写DAO和Service**:实现数据访问和业务逻辑。 8. **配置...

    Spring+JDBC实例

    6. **错误处理**:Spring的JDBC抽象层处理了许多底层的错误,比如关闭资源等,这使得代码更加健壮,避免了常见的数据库连接泄漏问题。 7. **DataSource配置**:在Spring中,我们需要配置一个DataSource,它是数据库...

Global site tag (gtag.js) - Google Analytics