java.sql.Connection interface A  Connection object is not garbage-collected until all other JDBC objects created from that connection are closed or are themselves garbage-collected. java.sql.Connection interface Connectionssession-severity exceptions closing Connectionssystem-severity exceptions closing Connectionsgarbage collection of

Once the connection is closed, no further JDBC requests can be made against objects created from the connection. Do not explicitly close the Connection object until you no longer need it for executing statements.

The Connection interface extends AutoCloseable in JDK 7 and after. If you declare a connection in a try-with-resources statement and there is an error that the code does not catch, the JRE will attempt to close the connection automatically.

Note that a transaction-severity or higher exception causes to abort an in-flight transaction. But a statement-severity exception does NOT roll back the transaction. Also note that throws an exception if an attempt is made to close a connection with an in-flight transaction. Suppose now that a Connection is declared in a try-with-resources statement, a transaction is in-flight, and an unhandled statement-severity error occurs inside the try-with-resources block. In this situation, will raise a follow-on exception as the JRE exits the try-with-resources block. (For details on error severity levels, see .)

It is therefore always best to catch errors inside the try-with-resources block and to either roll back or commit, as appropriate, to ensure that there is no pending transaction when leaving the try-with-resources block. This action also improves application portability, since DBMSs differ in their semantics when trying to close a connection with a pending transaction.

The following table describes features of Connection methods that are specific to .

Implementation notes on <i>Connection</i> methodsThis table describes the implementation-specific features of Connection methods, providing the return type and signature for each method. Returns Signature Implementation Notes PreparedStatement prepareStatement(String sql, int [] columnIndexes) Every column index in the array must correlate to an auto-increment column within the target table of the INSERT. PreparedStatement prepareStatement(String sql, String [] columnNames) Every column name in the array must designate an auto-increment column within the target table of the INSERT.

See for details on the use of the two forms of the Connection.prepareStatement method shown in this table.