在上述开发过程中,创建了Connection、Statement(或PreparedStatement、CallableStatement)和ResultSet(在执行查询类SQL语句时需要使用)实例时,都会占用一定的数据库资源和JDBC资源。为了节省计算机资源,在每次访问数据库结束后,应该及时销毁这些实例,释放这些实例占用的所有资源。
Connection、Statement(或PreparedStatement、CallableStatement)和ResultSet接口都提供了close()方法用于关闭当前实例,并立即释放所占用的资源,使用方法如下:
注意,资源的释放顺序建议为:ResultSet→Statement(或PreparedStatement、CallableStatement)→ Connection。(www.daowen.com)
采用上述释放顺序,一是因为如果先调用了Connection实例的close()方法,Statement(或PreparedStatement、CallableStatement)和ResultSet实例也会自动关闭,无须再手动调用,这样开发人员将无法保证资源一定被释放了;二是为了提高数据库访问和操作效率,很多情况下可能会使用数据库连接池的方式与数据库建立连接。这种情况下,Connection实例的close()方法可能并不是释放所占用的资源,而是将连接放回到数据库连接池当中,等待被再次使用。这个时候,如果不手动关闭Statement(或PreparedStatement、CallableStatement)和ResultSet实例,它们将在Connection中越积越多。当JVM的垃圾回收机制不能及时清理,可能会严重影响数据库和计算机的运行速度,导致程序瘫痪。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。