请问:用java操作数据库结束后关闭Connection就可以了吗?ResultSet和Statement等其他与数据库有关的东西用不用手工关闭?还是垃圾回收自动处理?谢谢!

解决方案 »

  1.   

    ResultSet 和 PreparedStatement等都要关,否则会占用数据库资源,这点很重要
    最好是在finally里写,例如:
    try{
    }
    catch{
    }
    finally{
      try{
        if(rst!=null){
         rst.close();
         rst = null; 
        }
        if(pst!=null){
        pst.close();
        pst = null;
        }
      }
      catch(SQLException){
         ...
      }
        
    }
      

  2.   

    一般先关闭rs,之后ps,最后conn不知各位还有什么好办法
      

  3.   

    谢谢楼上3位!
    不过3位的意见并不一致,是否说明仍然有一部分人和我一样对这个问题还有疑惑?conn.close()之后rs已经不可用了啊。
    另外,close()之后还有必要 =null 吗?
    望熟手解惑!
      

  4.   

    連接最好是在finally{}裡面關閉,不過,我看過日志文件,妳不關閉的話,容器也會為妳關閉
    conn.close()之后rs已经不可用了啊--------這個問題不知樓主可否測試過,據我測試應該是可以用的,只是ps關拉之後,rs不再可用
      

  5.   

    conn数据库连接gb应该不会自动回收吧,它只是回收与内存有关的东西,conn还监听了数据库占用端口的啊。譬如类似于socket。
    不过系统有一个默认的时间,如果不使用conn的话,它自动会关闭的。