hibernate+mysql too many connections如何关闭数据库连接?

2024-11-05 23:23:59
推荐回答(3个)
回答1:

楼主因为在hibernate中是Threadlocal管理session的你的session.close()后,Threadlocal的还没有马上请空的,如果你hibernate的session资源不够就很容易产生Too many connections的异常,可以这样解决都可以试试
1添加一个连接池配置文件,增加session线程池的线程数,通过设置

org.hibernate.connection.C3P0ConnectionProvider

30 <——————可以设置大一点
1
1800
1000
30000
1
false
2用楼上的方法,将session.close()修改为:sessionFactory.closeSession(),因为用sessionFactory关闭session会清空ThreadLocal的session
试试吧楼主如果不行,可能还是某一个session的问题
--------------------------------------------
没写对,不好意思是hibernateSessionFactory.closeSession()
_____________________________________________是不是你经常要用到hibernate插入大量数据?
是提示out of memory吗
因为hibernate使用缓存插入数据的,当你save时
它只是把数据保存在session中,没有马上插入,所以经常插入大量数据会造成内存不够
______________________________________________-
不过有解决方法的楼主

回答2:

通过session工厂关闭session对象。
将session.close()修改为:HibernateSessionFactory.closeSession()

回答3:

看上去像是权限不够·又像是链接报错