一个有点弱的问题:jdbc中一个Connection只能有一个Statement?一个ResultSet还是说:

时间:2020-12-27 11:55:15
我一个Connection 可以多个Statement,每个Statement对应一个ResultSet
请指教

11 个解决方案

#1


yes

#2


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

#3


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

#4


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

#5


用完就关闭,以免造成内存泄露,这个是最重要:
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() );
        }
    }

#6


to phoenix_zd(天马行空) :

我为什么不直接关conn 
而要先关stmt 呢?

#7


关的顺序不重要,重要的是关!
           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;
                      }
                         }
没有区别

#8


如果关掉connection
它应该自动关闭resultset 和statement吧?
这样对不对?


        finally  {

                     if( conn != null )
            {
                conn.close();
             }

}

#9


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

一个resultset用完后可以在使用这个statement生成另外的resultset

#10


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

#11


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

#1


yes

#2


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

#3


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

#4


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

#5


用完就关闭,以免造成内存泄露,这个是最重要:
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() );
        }
    }

#6


to phoenix_zd(天马行空) :

我为什么不直接关conn 
而要先关stmt 呢?

#7


关的顺序不重要,重要的是关!
           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;
                      }
                         }
没有区别

#8


如果关掉connection
它应该自动关闭resultset 和statement吧?
这样对不对?


        finally  {

                     if( conn != null )
            {
                conn.close();
             }

}

#9


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

一个resultset用完后可以在使用这个statement生成另外的resultset

#10


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

#11


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