不能, 一个比较好的方式是在使用完后就关闭, 方法名叫 close().

解决方案 »

  1.   

    但是出了myclass因该就在适当的时候自动调用回收函数了阿。不懂,请教!
      

  2.   

    垃圾回收和数据库连接失效是两个概念,即便对象conn被垃圾回收,并不等于实际的物理连接也是在这一刻失效,这和数据库本身设定的连接超时有关。因此应该主动调用conn.close()方法
      

  3.   

    也可以不关,等数据库操作全部完成之后再关。
    我就把DAO放在Session里面,反复共用,等请求结束之后再关
      

  4.   

    资源用完以后释放是一个好的习惯。
    如果你要连接数据库,最好用连接池,这样速度会快一些。
    如果你不放心,可以
    ......
    ......
    ......
     } catch (SQLException e) {
        ... deal with errors ...
      } finally {
           if (rs != null) {
          try { rs.close(); } catch (SQLException e) { ; }
          rs = null;
        }
        if (stmt != null) {
          try { stmt.close(); } catch (SQLException e) { ; }
          stmt = null;
        }
        if (conn != null) {
          try { conn.close(); } catch (SQLException e) { ; }
          conn = null;
        }
      }
      

  5.   

    要看你怎么声明这个变量,局部它才会自动回收但connection中生成了其它对象,不用close()它们可没那么聪明会自动回收哦反正要用close();况且代码也更清晰嘛
      

  6.   

    ////////////////////////////////////////////////////
    资源用完以后释放是一个好的习惯。
    如果你要连接数据库,最好用连接池,这样速度会快一些。
    /////////////////////////////////////////////////////
    能不能举一个连接池的例子,例如连接oracle的例子,谢谢