I think you are missing Jeff's point. This is not an effective way of organizing the responsibilities within your code. "Help" in this case would be "don't work this way".
A more typical way of organizing code is to have a method (in the same class or in a different class) that simply provides you with the connection. That way you can hide how you want to deal with connection management. You could create a single connection and cache it as Jeff suggested, but copy-and-paste blocks of driver loading/connection creation logic is just pointless code bloat.
After that, look for symmetry in your use of the
JDBC resources. If you want to be able to close a statement in some method, that same method should have been the one to cause the creation of the statement. Ditto for the result set. Usually people do something like:
Obviously exception handling is needed there, closes should be in finally blocks, etc.
As a rule of thumb, asymmetric responsibilities in code (creates with destroys, destroys without creates, adds without removes, connects without disconnects, etc.) are the starting point for future headaches.