在JDBC的数据库连接关闭中,我们多半都是用到对应的对象的close()方法。比如ResultSet,Statement,PreparedStatement,Connection都有独立的close方法关闭自身的链接。
今天这里罗列另外一种关闭连接的方式:
// 关闭结果集对象
public static void closeResultSet(ResultSet rs) {
Connection conn = null;
Statement stmt = null;
try {
if (rs == null) {
System.out.println("结果集为空,无法关闭!!");
} else {
stmt = rs.getStatement();
conn = stmt.getConnection();
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
从上面可以看到,关闭的不仅仅是ResultSet对象,还包括Statement、Connection对象。
ResultSet 提供类似于反编译般的方法,可以通过它获取到Statement对象,而Statement对象又提供Connection对象的获取方法,类似递归般的把提供这个ResultSet对象的链接关闭掉。