就我所知,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分页查询频繁操作出现数据库连接池不释放
最新推荐文章于 2021-02-24 01:31:02 发布