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
一、概述
jdbc的executeQuery()不是将查询结果一次性放到ResultSet中,而是分批放入ResultSet中,一般情况下是每次10条记录,即fetchSize默认为10。
当数据到达
一、概述
1、读写分离
数据库主节点压力比较大,需要增加从节点提供读操作,以减少压力。
2、多数据源
一个复杂发项目,因为没有拆分服务,需要连接多个业务的数据源。
这些场景都需要使用springboo