supertigertea 2010-11-03 17:22
浏览 336
已采纳

关于hibernate session关闭的问题,请大家帮忙

最近再看hibernate里面session的概念以及使用,它的两种获取方式和使用基本都明白了,但是现在有个问题,是关于session关闭的,请看下面代码片段

[code="java"]
Configuration config = new AnnotationConfiguration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
for(int i=0;i<500;i++){
Session session = sessionFactory.openSession();
session.createCriteria(SysConfig.class).list();
//session.close();
}
[/code]

这里我开了500个session,每个都做了一次数据库的查询,而且都没有执行关闭,为何不报数据库的连接异常,我把连接数提升到5000照样正常执行,请问数据库连接可能自己释放吗?

又 如果这个方法操作结束后,session对象被JVM回收了,连接会不会自动被释放呢?

  • 写回答

2条回答 默认 最新

  • enet_java 2010-11-04 11:49
    关注

    使用的hibernate的数据源,配置时我记得有一项是会检测数据库连接池的使用情况,如果你没有手工主动释放,间隔一定时间,hibernate会自动检测,如果没有语句使用,或这是超时,它就会释放掉,如果是在用,而且已经超了上限,应该是可以自增连接的。

    你可以看看hibernate的配置。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置