请指教
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() );
}
}
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 呢?
我为什么不直接关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;
}
}
没有区别
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();
}
}
它应该自动关闭resultset 和statement吧?
这样对不对?
finally {
if( conn != null )
{
conn.close();
}
}
#9
一个connection可以创建多个statement,
一个statement在任意时刻只能对应一个resultset。如果你生成了多余一个的
resultset,就会有一个resultset失效,但一般不会有错误产生,所以会留下
一个很难查找的BUG。
一个resultset用完后可以在使用这个statement生成另外的resultset
一个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() );
}
}
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 呢?
我为什么不直接关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;
}
}
没有区别
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();
}
}
它应该自动关闭resultset 和statement吧?
这样对不对?
finally {
if( conn != null )
{
conn.close();
}
}
#9
一个connection可以创建多个statement,
一个statement在任意时刻只能对应一个resultset。如果你生成了多余一个的
resultset,就会有一个resultset失效,但一般不会有错误产生,所以会留下
一个很难查找的BUG。
一个resultset用完后可以在使用这个statement生成另外的resultset
一个statement在任意时刻只能对应一个resultset。如果你生成了多余一个的
resultset,就会有一个resultset失效,但一般不会有错误产生,所以会留下
一个很难查找的BUG。
一个resultset用完后可以在使用这个statement生成另外的resultset
#10
关闭了Connection,Statement就自动关闭了,关闭Statement Resultset也自动关闭,一个Connection可以打开多个Statement,但是是有数量限制,最好用完一个Statement就关闭它。
#11
如果打开过多的Statement,比如在循环中建立Statement而不关闭,会导致游标数过大。