[java] Must JDBC Resultsets and Statements be closed separately although the Connection is closed afterwards?

Doesn't matter if Connection is poolable or not. Even poolable connection has to clean before returning to the pool.

"Clean" usually means closing resultsets & rolling back any pending transactions but not closing the connection. Otherwise pooling looses its sense.