请问我把连接数据库的javabean设为session,在session结束后这个数据库连接会自动关闭吗?

new_siberia 2004-12-28 10:48:16
请问我把连接数据库的javabean设为session,在session结束后这个数据库连接会自动关闭吗?
...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
damaha999 2004-12-29
  • 打赏
  • 举报
回复
session關閉后裏麵的對象會銷毀,但是問題是妳的數據庫服務器上的連接卻一直存在,我以前測試過如果妳不關閉連接對象數據庫服務器會始終保存一個死進程就是妳的數據庫連接.所以必須在程序中手動關閉數據庫對象或者作其它技術處理,不能直接銷毀對象的.
cnliutian 2004-12-29
  • 打赏
  • 举报
回复
session和javabean是两个对象,先明确这个问题
session结束,用户所对应的session所有的东西全部消失。
连接数据库bean你只是调的session作用域,而不是把它放在session中,所以session结束,只能说明连接数据库bean的作用域失效,而bean对象还存在,这也就说明这个bean没有关闭

上面的只是我理论上的分析,并未进行过实际测试,这个还需要实际测试一下得出最终结论
  • 打赏
  • 举报
回复
楼主所说的“自动关闭”和二楼所说的“对象销毁”有区别吗,应该有吧

关注!
wjr1982et 2004-12-29
  • 打赏
  • 举报
回复
这样的问题第一次听过,有意思,挺有创新啊!
但是我认为,session销毁后,session里面的对象也随之被
销毁啊!这是书上说的。但感觉楼上说的也有道理,关注!

to sboom(+-LingCh-+)(怪你过分美丽) :
但你的情况不是session结束时就调用,因为session结束时session里的java bean对象未必马上就会被销毁,而是等GC作用时才会销毁.
这和书上说的不是矛盾吗?
sboom 2004-12-28
  • 打赏
  • 举报
回复
不会,你要在这个JAVA BEAN里重载
finallize 方法
protect finallize()
{
//这里关闭数据库
}

对象销毁时就会调用 finallize方法

但你的情况不是session结束时就调用,因为session结束时session里的java bean对象未必马上就会被销毁,而是等GC作用时才会销毁.

要实现你的情况的话可以用 sessionLisener 监听session 销毁事件,session销毁时调用javabean的关闭数据库的代码.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧