日期:2014-05-20  浏览次数:20613 次

关于一个hibernate连接池的问题,在线等待
我在hibernate配置一个连接池,JNDI名称是session_factory
Context initCtx = new InitialContext();
//然后获取sessionFactory
SessionFactory sessionFactory = (SessionFactory) initCtx.lookup("session_factory");
//然后获取session
Session session = sessionFactory.getSession();
//我需要把连接给后台的jdbc所以这里要获取Connection
Connection conn = session.connection();
conn.close();

我问题有几点:
1.就是session.connection()获取的连接是多个是吗 ? 他获取出来后是由连接池来管理吗?
2.用session.connection()的连接,当我直接调用.close()方法时,他是把连接关闭了还是还给连接池了呢?

在线等答案,希望高手帮忙,谢谢!

------解决方案--------------------
sessionfactory是重量级的,如无特殊需求每个项目保留一个就可以了,session是轻量级的,
首先你要搞清楚连接池的概念啊,所谓池就是一个容器而已,比如说游泳池,规定最低水位多少,最高多少,低于最低标准不行,同样的高于最高标准也会出事情!
------解决方案--------------------
这个问题我也遇到过,我现在加了一个群,这个群人气较好,也的确有高手,不但可以交流问题,而且还可以接项目赚钱,QQ群号是:陆.肆.柒.玖.捌.柒.玖.贰,不要说我做广告,看看便知,如需要的话加入试试,如果你发现好的交流群也别忘了告诉我啊!呵呵!
------解决方案--------------------
不是,连接池在你请求连接的时候,它会判断连接池里面是否有空闲连接,有的话就分配给你,没有你就得等,获取出來后的连接,它是管理的,当你关闭了,它会收回,我博客上有篇从hibernate官网上的连接池的实现,楼主去看看就明白了
地址是:http://blog.csdn.net/youjianbo_han_87/archive/2008/07/17/2665004.aspx