测试的时候没有出现异常,但是拿到生产环境中会报:超出打开的最大游标数错误。
经过检查是程序员在写程序的时候,在循环中创建Statement,而没有关闭。
关闭之后,问题解决。
注:
不是用连接池的情况下,只要关闭了connection,Statement和ResultSet也会关闭(与数据库的连接都断开了,当然关闭了),当垃圾回收的时候,会回收无用的Statement和ResultSet对象。
但如果使用数据库连接池,由于connection.close();是将连接放回连接池,所以必须手动的关闭Statement和ResultSet,否则报“超出打开的最大游标数”错误。