将关闭一个准备好的语句关闭与之关联的结果集?

时间:2018-02-01 10:25:45

标签: java database jdbc

我有一个函数返回一个结果集,该结果集与一个准备好的语句相关联。我正在关闭finally块中的预准备语句。 它会自动关闭我需要返回的结果集。 这有什么替代方法? 我的代码看起来像这样

Resultset fnName(){
  Resultset rs = null;
  PreparedStatement ps = new PreparedStatement();
  try{
    rs = ps.execute(<query string>);
  }
  catch(...){...}
  finally{
    ps.close().
  }
  return rs;
}

1 个答案:

答案 0 :(得分:2)

你可以阅读Javadoc(我的重点):

void close​()
      throws SQLException
     

立即释放此Statement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。通常,最好在完成资源后立即释放资源,以避免占用数据库资源。

     

在已关闭的Statement对象上调用close方法无效。

     

注意: 当Statement对象关闭时,其当前的ResultSet对象(如果存在)也将关闭。