怎么会呢?
要先关闭con再关闭stmt:
可以这样写:
try{
      if(!con.isClosed()){con.close();}
      if(stmt!=null){stmt.close();}
    }catch(Exception e){ ... }
ResultSet 是使用完即关闭

解决方案 »

  1.   

    我认为是这样的一个顺序:先关闭rs.close(),再就是stmt.close(),最后是conn.close()
      

  2.   

    同意楼上的看法,不过可以不用rs.close(),在stmt.close()的时候就会关闭rs,所以只需要
    try
    {
        .....
        stmt.close();
        con.close();
    }catth(Exception e){
        e.printStackTrace();
    }
    也可以不关闭,因为Java具有自动垃圾收集功能,当一个对象失去其作用域后,JVM虚拟机将作为自动垃圾收集的一部分,收回该对象所使用的内存。