我正在使用我在代碼中傳遞的javax.sql.rowset.CachedRowSet
對象。該ResultSet
從它被填充CachedRowSet
傳遞給我的代碼的其餘部分之前被關閉(僅用於閱讀,我不更新或修改以任何方式):CachedRowSet :: release()與close()
public CachedRowSet getData(String query) throws SQLException {
RowSetFactory aFactory = RowSetProvider.newFactory();
CachedRowSet crs = aFactory.createCachedRowSet();
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(query);
crs.populate(rs);
} finally {
DbUtils.closeQuietly(null, stmt, rs);
}
return crs;
}
鑑於上面的設置,當我完成它時,它也有意義嗎?close()
或release()
CachedRowSet
對象? This answer似乎暗示close()
不會傷害,但不會解決release()
,或兩者之間的差異。我想我可以做一個release()
然後close()
以防萬一,但我想了解更多一點。請注意,我甚至會將CachedRowSet
對象序列化,然後將其從另一個模塊中的String
內部化,因此我也可以在重新內化的實例上調用close()
和release()
,這沒有任何意義。