我可不可以不关st和rs,而直接关闭conn
解决方案 »
- 关于tomcat项目与虚拟主机路径配置的疑问?
- QQ空间动态投票结果
- 如何使文字能够点击跳转到另一页面怎么写请举个小例子
- 求兼职:上海地区JSP兼职顾问
- 难!难!难!——有谁知道linux版的sql server 的jdbc如何安装,我下载了linux版的sql server jdbc 。windows 我会。
- 解析xml
- √十足的好站,程序员必备,特点:资料多,源代码多,速度快。感觉好就回复谢谢!●出家人不打诳语。●本版版主最好也来看看!
- 请问怎么验证form里面各个项目的正确性,如果都正确,就执行action后面的JSP,如果有一个不正确,就不执行JSP
- 有星星了 散分
- 这个问题你懂吗
- 程序在jdk1.4中运行正常,但在1.5中却无法编译?
- 在线等!请给为高手帮帮忙
------------------------------
像caimaohua(杨白劳)所说,也有道理,但是不完全,
java虽然有垃圾回收机制,但是它的工作确实不确定的,也就是说,我们也不知道什么时候开始回收资源,除非强制性的启动垃圾回收器。不过你的这个问题
不用关闭,当你第二次用的时候,就给他们赋了新的内容!
覆盖了以前的内容。
但是,如果你的循环很大,还没有来得及conn.close之前,你的resultset太多就会导致数据库达到client cursor max值,光标会被你干光的。如果你循环只有3-5次,或者不是一个循环,你只打开了两三个statement/resultset,那么就没有太大关系。这里,你的循环谁知道多大,一定要关!这个和VM的gc没有关系,数据库连接这个不单单是内存资源,需要手工关闭的。
if(rs != null) rs.close();
if(st != null) st.close();
测试300次都会死掉.还有就是“一个conn只能打开一个st,一个st只能打开一个rs”的意思是不是指一次只能打开一个
------------
一个conn可以打开多个st,但是一个st最多只能对应一个rs
相当于conn下开多个client cursor
------------------
可能你的数据库max cursor设置是300左右