在测试过程中,我发现无论使用close()方法如何,Hibernate都在打开每个会话的连接,但没有关闭它
使用连接池时,调用Connection#close()
不会物理上关闭连接,而是将其返回到池中以供将来重用。换句话说,连接保持打开状态,这就是使用池的全部要点。
我称之为:AnnotationConfiguration()。buildSessionFactory()。getCurrentSession();
好吧,这就是问题所在。您正在创建SessionFactory
一遍又一遍(每个都创建自己的池),而在应用程序的整个生命周期中 创建 。如果您不使用任何特定框架,则通常是在某些实用程序类(著名的HibernateUtil
类)中完成的。
官方的《Hibernate教程》提供了此类的非常基本的示例。或者看一下这个更丰富的东西。