考虑以下代码
ResultSet rs = null;
Statement st = null;
try {
//do somehting
} catch (Exception e){
//do something
} finally {
if(st != null){
try {
st.close();
} catch (SQLException e) {
log.error("Exception while closing statement: " + e);
}
}
}
问题是当我们关闭语句时,它会关闭结果集还是我们需要像这样显式关闭结果集
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
log.error("Exception while closing result set: " + e);
}
}
我以为关闭语句会自动关闭结果集,但是如果我没有明确关闭结果集,FindBugs 会抛出以下警告
此方法可能无法清理 java.sql.ResultSet