当前位置: 技术问答>java相关
返回结果集的问题
来源: 互联网 发布时间:2015-09-12
本文导语: 我的一个方法如下: //执行带返回结果的SQL语句 public static ResultSet executeQuery(String SQL) throws java.lang.Exception { Connection dbConn = null; try { dbConn = connectToDB(); //从另外一个方法中...
我的一个方法如下:
//执行带返回结果的SQL语句
public static ResultSet executeQuery(String SQL) throws java.lang.Exception
{
Connection dbConn = null;
try
{
dbConn = connectToDB(); //从另外一个方法中返回一个连接
Statement stmt = dbConn.createStatement();
ResultSet rsTemp = stmt.executeQuery(SQL);
return rsTemp;
}
catch(Exception exc)
{
throw new Exception(exc.toString());
}
finally
{
if(dbConn != null)
dbConn.close();
}
}
此方法编译通过,可是每次调用它的时候,提示我java.lang.Exception: java.sql.SQLException: Connection has already been closed.
是不是在方法中我不能关闭数据库连接呢?
//执行带返回结果的SQL语句
public static ResultSet executeQuery(String SQL) throws java.lang.Exception
{
Connection dbConn = null;
try
{
dbConn = connectToDB(); //从另外一个方法中返回一个连接
Statement stmt = dbConn.createStatement();
ResultSet rsTemp = stmt.executeQuery(SQL);
return rsTemp;
}
catch(Exception exc)
{
throw new Exception(exc.toString());
}
finally
{
if(dbConn != null)
dbConn.close();
}
}
此方法编译通过,可是每次调用它的时候,提示我java.lang.Exception: java.sql.SQLException: Connection has already been closed.
是不是在方法中我不能关闭数据库连接呢?
|
这是finally引起的,在执行return rsTemp;前,先执行finally
也就是dbConn已经关闭了,再返回return rsTemp;
去掉finally
也就是dbConn已经关闭了,再返回return rsTemp;
去掉finally
|
关闭了连接,你的结果集也不在了
|
finally
{
if(dbConn != null)
dbConn.close();
}
执行后数据库连接不是关闭了吗?
{
if(dbConn != null)
dbConn.close();
}
执行后数据库连接不是关闭了吗?