JDBC中PreparedStatement和ResultSet是否需要手动关闭

阅读数:224 评论数:0

跳转到新版页面

分类

python/Java

正文

如果你不使用连接池,那没有什么问题,一旦Connection关闭,数据库物理连接被释放,所有相关Java资源也可以被GC回收。但是如果你使用连接池,Connection关闭并不是物理关闭,只是归还连接池,所以PreparedStatement和ResultSet都被持有,并且实际占用相关的数据库游标资源,在这种情况下,只要长期运行,往往就会报“游标超出数据库允许的最大值”的错误,导致程序无法正常访问数据库。

 




相关推荐

一、概述 1、spring容器 spring中有三种bean容器:BeanFactory、ApplicationContext、WebApplicationContext。 (1)BeanFactor

jdbc1.0 jdbc2.0 jdbc3.0中分别用以下方法创建Statement。 jdbc1.0: createStatement() jdbc2.0: cre

public boolean validateTableExist(String tableName){ boolean flag = false; try { Dat

一、概述 jdbc的executeQuery()不是将查询结果一次性放到ResultSet中,而是分批放入ResultSet中,一般情况下是每次10条记录,即fetchSize默认为10。 当数据到达

一、概述 1、读写分离 数据库主节点压力比较大,需要增加从节点提供读操作,以减少压力。 2、多数据源 一个复杂发项目,因为没有拆分服务,需要连接多个业务的数据源。 这些场景都需要使用springboo