rs.close();
rs=null;请问rs都已经close了,再rs=null还有意义吗?具体是什么意义?
close方法中不是已经将它置为null了吗?stmt 和 conn 也是同样的问题.谢谢!
解决方案 »
- 请教一个servlet的菜鸟问题
- 求wap建站可用的开源项目
- Axis1.4容器 wrapped/literal 样式加密认证问题!
- javamail解析的时候,为什么pdf格式的附件保存下来的时候全是空白的呀?
- no server associated with launch configuration.Aborting launch
- file upload一问
- #JAVA Web#文件下载时需向后台传递大量参数的问题
- 有个SOA的想法
- 对各种j2ee服务器的疑问(不够再加分)
- 支付宝即时到账的退款问题
- 调查一下,你使用的第一个数据库是什么?Access也算哦.
- jbpm4和ssh一起用出现的问题
rs.close();
{
rs.close();
rs=null;
}问题是在if内部也有 rs=null; 呀,我看一个很权威的老师(马士兵)是这么用的.
rs=null,将rs的值赋值为空。
其实他这样做也没什么必要。rs=null。目的是为了让垃圾回收。但是垃圾回收机制不是你设置为null就会回收的。jvm有专门的线程会检测内存空间,当内存空间不够的时候,才会进行垃圾回收。
所以可能多个方法会用到 conn 、 pstmt 、rs
我觉的有必要这样写的,印象中conn如果已经关闭 conn不赋值为null的话
再调用close()方法 会报错,我想rs如果关闭了,再调用关闭方法应该也会报错。
没编译器没法给你测试。。 rs.close();
rs.close();连续调用两次看下能报错不?
能报错就说明有必要这么写。
private Connection conn;
public static Connection getInstance(){
if(this.conn == null){
this.conn = DriverManager.getConn(....);
}
return this.conn ;
}
public static void closeConn(boolean flag){
if(conn != null){
conn.close();
if(flag){
conn = null;
}
}
}
......
//当前类public int static upadate(Connection conn,String sql){
...........
}public static void main(String args[]){
Connection conn =DaoBase.getInstance();
this.update(conn,sql);//执行一条更新语句方法
DaoBase.closeConn(false);//关闭没有设置成null
//DaoBase.closeConn(true); 用这句代替上一句 后面都不会报错 conn = DaoBase.getInstance();
conn.update(conn,sql); //报conn已经关闭 不能再用 类似的错误
}如果之前有DaoBase
rs.close();但先赋为null之后再调用close,就会报NullPointerException:
rs.close();
rs=null;
rs.close(); //此行报NullPointerException
谢谢大家!