用hibernate管理数据库的时候transaction和session为空的情况下还有必要关闭吗?关闭和不关闭的理由是什么

[复制链接]
查看11 | 回复2 | 2013-2-25 20:40:58 | 显示全部楼层 |阅读模式
如果为null,不能关闭,否则调用close() 会出现nullPointException异常如果不为null,使用openSession() API的时候 ,在使用完session的时候注意要关闭。 释放资源,否则会造成内存泄露当然 若果hibernate 在使用session的时候 你调用的是getCurrentSession()这个API 那么是不需要手动关闭的。hibernate在事物提交后就自动将session回收了!一般在开发用用的都是第二种!而且和Spring整合后Spring管理Session也是第二种,所以程序中可以不再关注Session的关闭了...
回复

使用道具 举报

千问 | 2013-2-25 20:40:58 | 显示全部楼层
不关闭 关闭会话一是可以保证数据的完整性,即关闭时会先等待执行完尚未运行结束的代码;第二也是最重要的会释放系统资源。如果本身已经为空,说明不存在相关资源,也就不需要关闭。另外如果为空的话,关闭也会导致程序报错。会触发NullPointerException。希望对你有所帮助!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行