クエリの実行後に接続を閉じようとしています。以前は、CachedRowSetImpl
インスタンスを作成するだけで、インスタンスがリソースを解放してくれました。ただし、Hadoop プロジェクトの Hive データベース ドライバーを使用しています。には対応していませんCachedRowSetImpl.execute()
。ResultSet
オブジェクトをコピーして接続を閉じることができる他の方法があるかどうか疑問に思っていますか?
3170 次
1 に答える
5
CachedRowSet
既存の から を取り込むことができますResultSet
:
public static RowSet executeQuery(String sql) throws Exception {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
con = openConnection();
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
CachedRowSet rows = new CachedRowSetImpl();
rows.populate(rs);
return rows;
}finally{
rs.close();
ps.close();
con.close();
}
}
于 2009-09-30T10:03:12.040 に答える