我有一个函数返回一个结果集,该结果集与一个准备好的语句相关联。我正在关闭finally块中的预准备语句。 它会自动关闭我需要返回的结果集。 这有什么替代方法? 我的代码看起来像这样
Resultset fnName(){
Resultset rs = null;
PreparedStatement ps = new PreparedStatement();
try{
rs = ps.execute(<query string>);
}
catch(...){...}
finally{
ps.close().
}
return rs;
}
答案 0 :(得分:2)
你可以阅读Javadoc(我的重点):
void close() throws SQLException
立即释放此Statement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。通常,最好在完成资源后立即释放资源,以避免占用数据库资源。
在已关闭的Statement对象上调用close方法无效。
注意: 当Statement对象关闭时,其当前的ResultSet对象(如果存在)也将关闭。