但是如果你使用连接池,那么请注意,Connection关闭并不是物理关闭,只是归还连接池,所以PreparedStatement和 ResultSet都被持有,并且实际占用相关的数据库的游标资源,在这种情况下,只要长期运行,往往就会报“游标超出数据库允许的最大值”的错误,导致程序无法正常访问数据库。
明显没有关闭。因为这个ResultSet是新创建的。
不知道这个Jdbc工具类是你自己创建的还是用Apache的DbUtils,可以的话把你closeConn()方法的一段代码贴给我看。
我可以确定这个ResultSet是明显没有关闭的。
我的理解,显式的关闭会当即释放。不加的话,不会当即释放。会在其生命周期终止的时候释放。但是他的生命周期什么时候终止,这个是由编译器或者解释器甚至池来决定的。
基于不同的游标类型,不显式关闭rs,可能会引发其他问题,所以我们建议要显式关闭,即写上rs.close(),和conn.Close.养成良好的代码习惯。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)