就像你这样写就可以了。
try{
rs.close();
stmt.close();
conPools.freeConnection(con);
}catch(Exception e){
conPools.freeConnection(con);

解决方案 »

  1.   

    是不是rs.close() stmt.close()
    时就释放了内存资源
      

  2.   

    close 
    public void close() throws SQLException 
    Releases a Connection's database and JDBC resources immediately instead of waiting for them to be automatically released. 
    Note: A Connection is automatically closed when it is garbage collected. Certain fatal errors also result in a closed Connection.
    所以只用rs.close()和stmt.close()就可以了。con.close()有时会产生异常,我就遇到过这样的问题。
      

  3.   

    用析构函数
    ~classname() 
    {
    rs.close();
    stmt.close();
    }
      

  4.   

    con stmt rs 与vc里的datasource session command 相对应stmt以及rs 对于同一数据库是不是有一定的创建数目。
      

  5.   

    是有数量限制的。不过对于一般的应用来说应该是够用的。你可以看看所用的jdbc的文档,看看里面的具体的限制是多少。
      

  6.   

    只要当你的程序出现异常时,你注意在异常处理里面把数据库连接和相关资源释放,在正常结束时,你在程序的最后在释放就可以了,也可以把资源释放,放到finally里面,是最好的了。
      

  7.   

    请看一下下面的代码,处理多次以后会产生什么样的后果、
    stmt=con.createStatement()
    while(true){
    rs=stmt.executeQuary(sql[i]);
    rs.next();
    String msg=rs.getString(1);
    ....
    i++;
    }
    是不是最后rs被耗尽,程序崩溃呢?