作为一种好的编程风格,应在不需要Statement对象时显示式地关闭它们,这将立即释放服务器资源,有助于避免潜在的内存问题。同样,使用完整数据库连接后,就应关闭它,释放连接所占用的数据库资源。
如果你不使用连接池,那么就没有什么问题,一旦Connection关闭,数据库物理连接就被释放,所有相关Java资源也可以被GC回收了。
但是如果你使用连接池,那么请注意,Connection关闭并不是物理关闭,只是归还连接池,所以PreparedStatement和 ResultSet都被持有,并且实际占用相关的数据库的游标资源,在这种情况下,只要长期运行,往往就会报“游标超出数据库允许的最大值”的错误,导致程序无法正常访问数据库。
以上就是关于为什么要关闭Statement对象以及数据库连接全部的内容,包括:为什么要关闭Statement对象以及数据库连接、数据库连接rs/stmt不关闭,只关闭conn会出现什么问题、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)