JDBC 垃圾回收

2022-01-16 00:00:00 garbage-collection jdbc java

What happens if i don't close resultset or preparedstatements.

Will they be closed and released by the garbage collector.

I'm asking this for local variables inside a function.

Do you know any documentation about this ?

解决方案

If your code does not close ResultSets or PreparedStatements when done using then, your application will hog scarce resources — like cursors — in the database. See, for example:

  • ResultSet not closed when connection closed?
  • What happens to the original resultSet when it is returned from a method into a new object?

The garbage collector does not know anything about closing ResultSets or PreparedStatements, so GC won't automagically take care of that for you. What will? Java 7's try-with-resources statement!

相关文章