11.3.7 关闭连接

更新于 2026年10月10日 版权声明
11.3.7 关闭连接

在上述开发过程中,创建了Connection、Statement(或PreparedStatement、CallableStatement)和ResultSet(在执行查询类SQL语句时需要使用)实例时,都会占用一定的数据库资源和JDBC资源。为了节省计算机资源,在每次访问数据库结束后,应该及时销毁这些实例,释放这些实例占用的所有资源。

Connection、Statement(或PreparedStatement、CallableStatement)和ResultSet接口都提供了close()方法用于关闭当前实例,并立即释放所占用的资源,使用方法如下:

图示(https://www.daowen.com)

注意,资源的释放顺序建议为:ResultSet→Statement(或PreparedStatement、CallableStatement)→ Connection。

采用上述释放顺序,一是因为如果先调用了Connection实例的close()方法,Statement(或PreparedStatement、CallableStatement)和ResultSet实例也会自动关闭,无须再手动调用,这样开发人员将无法保证资源一定被释放了;二是为了提高数据库访问和操作效率,很多情况下可能会使用数据库连接池的方式与数据库建立连接。这种情况下,Connection实例的close()方法可能并不是释放所占用的资源,而是将连接放回到数据库连接池当中,等待被再次使用。这个时候,如果不手动关闭Statement(或PreparedStatement、CallableStatement)和ResultSet实例,它们将在Connection中越积越多。当JVM的垃圾回收机制不能及时清理,可能会严重影响数据库和计算机的运行速度,导致程序瘫痪。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)