关闭准备好的语句会关闭与其关联的结果集吗?

sri*_*ram 0 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;
}
Run Code Online (Sandbox Code Playgroud)

Jim*_*son 5

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

\n\n
\n
void close\xe2\x80\x8b()\n      throws SQLException\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

对已关闭的 Statement 对象调用 close 方法没有任何效果。

\n\n

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

\n
\n