stmt.close();后用stmt = null;有什么意义吗?
解决方案 »
- request.setAttribute("list", "''");
- 请教bulid.xml编译失败?
- 怎么用execute执行插入后又select @@identity。。
- 如何用JavaScript实现获取字符串连接
- 求救,<html:file />能否给路径名赋值,如何保存住路径名
- 菜鸟再来问个简单问题?jsp怎么取<a href=***.jsp?id1=value>提交的id1的值???
- 请教一个很棘手的问题
- 为什么JRUN运行一段时间会慢呢?
- 用tomcat连接池和mysql连接的问题
- 创建连接池好还是直接连接好
- 我自己建的servlet不能运行,请问在tomcat中应该则么配置?(给高分)急!!!
- jbuilder8或者9在那里可以下载?别人都说tomcat需要安装,我的tomcat4.1.24直接解压就可用了,怎么回事?
stmt = null;
表示 stmt 已经是一个空对象,当垃圾回收器发现时可以回收 stmt 占用的资源啊!
一起用绝对不会出错的!
用stmt==null作用不是很明显,对于PrepareStatement来说这个并没有作用,对Statement会有作用!
{
Statement stmt = .....
stmt.close();
}//这个打括号结束是就表示,stmt可以回收了
但stmt.close()还是有必要的,它要释放某些资源
对于 moumouren(某某人) 中说的}//这个打括号结束是就表示,stmt可以回收了
不是很认可。垃圾收集器只是在它说占有的空间满或者到一定的周期时才会进行一次回收的。
public static void closeDB(Connection conn, Statement stmt, ResultSet rs) throws
SQLException {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
}
catch (SQLException e) {
}
}
stmt.close()//意思也是释放资源 stmt = null 这个类似功能在函数close()里被执行,close()是一个继承来的函数,隐式的执行了stmt = null.
所以用其一不用其二 随君选择
stmt.close () 会让 stmt=null吗?
答案is no!
大家随便编个程序,跟踪跟踪 stmt .close 后 stmt 是否会被设为 null,就知道了!
答案是肯定不会被设为 null的!
而且,我认为只调用 stmt.close(),stmt所占用的资源不会被垃圾回收器收集的!
大家编个程序跟踪一下就知道了!
至于 stmt=nulll 和 stmt.close 可以随便使用其中之一,那我是绝对不同意的!
肯定 的 stmt.close 是应该调用的!