资源回收

    Statement在JDBC编程中常常被用到,但却常常忽略。Statement本身是一个接口,有两个实现类:PreparedStatement和CallableStatement,通过connection.createStatement()创建实例。相对于connection和resuleset资源来说,statement实例很容易被忽略而没有即时释放它。下面就是一个会导致严重后果的例子:
java 代码
  1. for (;;;) {   
  2.     Statement sst = connection.createStatement();   
  3.     ... ...   
  4. }  

    这样很容易产生“游标数用完”的错误,我曾坐过一个统计,在oracle数据库上,以上类型的代码在insert200多条记录时就报异常,而当把statement语句转移到for循环外面时就没有报异常,而且我一次性同步2000多条记录都没问题。

    最后,还是想说那句话:任何打开的资源都应手工close掉,而不是等gc来清理,往往是在gc清理前资源已经耗尽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值