就我所知,SSH框架配置的开源数据库连接池有4种,分别是DBCP、C3P0、Proxool、BoneCP。工作中最先接触使用的是DBCP,之后又使用了C3P0。最近在使用hibernate分页功能时,发现重复频繁的使用分页查询时数据库连接会得不到释放!!!我的分页查询使用的语句是:
Query query = getSession().createQuery(hql);
Pager pager = pageHelper.getPager(getRows(pageHelper.getHql()));
query.setFirstResult(pager.getStartRow());
query.setMaxResults(pager.getPageSize());
return query.list();
在网上查了查,一种方案说是使用getSession()造成的,建议利用HibernateTemplate替换,想想改动太大而且本人习惯传hql,只好舍弃(是否有效还需要验证)。
另外有方案说是在配置C3P0方面有问题,我检查了多遍,也尝试诸多修改方案,未见效果,实在不知道问题出在哪里!如果哪位大虾看到还请帮忙!我的C3P0配置如下:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="maxPoolSize" value="${c3p0.maxPoolSize}" />
<property name=&
Hibernate分页查询频繁操作出现数据库连接池不释放
最新推荐文章于 2024-08-21 03:41:11 发布
在使用Hibernate进行分页查询时,遇到数据库连接池(如C3P0)无法释放的问题。尝试调整C3P0配置无效后,更换为Proxool连接池解决了该问题。推荐一篇关于不同数据库连接池性能比较的博客。
摘要由CSDN通过智能技术生成