当我们完成对数据库的操作之后,需要关闭连接以节约内存。
那么连接关闭的顺序又是怎样的呢?
- 如果存在ResultSet连接对象,则首先关闭
- 如果存在PreparedStatement / Statement连接对象,关闭
- 最后关闭Connection连接对象
为什么关闭连接的顺序是这样的?
举个栗子:当你的假期结束,要离开家去上班的时候,你首先需要关闭卧室门(即ResultSet),其次关闭客厅们(即PreparedStatement),最后再关闭家里的大门(即Connection)。
如下图:
如果你先关闭了大门(即Connection),那么你的客厅门(PreparedStatement)和卧室门(ResultSet)就没有办法关闭了
代码:
public static void close(ResultSet rs, PreparedStatement pstmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}