一个connection可以创建多个statement,但是一个statement只能对应一个resultset

解决方案 »

  1.   

    Statement 用完以后最好关闭。
    虽然是多个,但是有限的。
      

  2.   

    一般的免费的jdbc都是对它用限制的。
      

  3.   

    用完就关闭,以免造成内存泄露,这个是最重要:
    finally
        {
            try
            {
                if( stmt != null )
                {
                    stmt.close();
                    stmt = null;
                }
                if( conn != null )
                {
                    conn.close();
                    conn = null;
                }
            }
            catch( Exception e )
            {
                throw new RemoteException(  "failed to close db connection.\n" + e.getMessage() );
            }
        }
      

  4.   

    to phoenix_zd(天马行空) :我为什么不直接关conn 
    而要先关stmt 呢?
      

  5.   

    关的顺序不重要,重要的是关!
               finally  {
                            if(stmt!=null)
                          {
                    stmt.close();
                    stmt = null;
                          }
                    if( conn != null )
                {
                    conn.close();
                 }
            }
    与                  finally  {                     if( conn != null )
                {
                    conn.close();
                 }                        if(stmt!=null)
                          {
                    stmt.close();
                    stmt = null;
                          }
                             }
    没有区别
      

  6.   

    如果关掉connection
    它应该自动关闭resultset 和statement吧?
    这样对不对?
            finally  {                     if( conn != null )
                {
                    conn.close();
                 }}
      

  7.   

    一个connection可以创建多个statement,
    一个statement在任意时刻只能对应一个resultset。如果你生成了多余一个的
    resultset,就会有一个resultset失效,但一般不会有错误产生,所以会留下
    一个很难查找的BUG。一个resultset用完后可以在使用这个statement生成另外的resultset
      

  8.   

    关闭了Connection,Statement就自动关闭了,关闭Statement Resultset也自动关闭,一个Connection可以打开多个Statement,但是是有数量限制,最好用完一个Statement就关闭它。
      

  9.   

    如果打开过多的Statement,比如在循环中建立Statement而不关闭,会导致游标数过大。