Class JDBCUtils


  • public class JDBCUtils
    extends Object
    Utility class helping developers to safely clean up after connections.

    Although this class is not used directly by the org.geotools.jdbc classes it is used downstream in GeoServer.

    Author:
    Sean Geoghegan, Defence Science and Technology Organisation, $Author: seangeo $
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void close​(Connection conn, Transaction transaction, SQLException sqlException)
      A utility method for closing a Connection.
      static void close​(ResultSet rs)
      A utility method for closing a ResultSet.
      static void close​(Statement statement)
      A utility method for closing a Statement.
      • Methods inherited from class Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • close

        public static void close​(Statement statement)
        A utility method for closing a Statement. Wraps and logs any exceptions thrown by the close method.
        Parameters:
        statement - The statement to close. This can be null since it makes it easy to close statements in a finally block.
      • close

        public static void close​(ResultSet rs)
        A utility method for closing a ResultSet. Wraps and logs any exceptions thrown by the close method.
        Parameters:
        rs - The ResultSet to close. This can be null since it makes it easy to close result sets in a finally block.
      • close

        public static void close​(Connection conn,
                                 Transaction transaction,
                                 SQLException sqlException)
        A utility method for closing a Connection. Wraps and logs any exceptions thrown by the close method.

        Connections are maintained by a Transaction and we will need to manage them with respect to their Transaction.

        Jody here - I am forcing this to be explicit, by requiring you give the Transaction context when you close a connection seems to be the only way to hunt all the cases down. AttributeReaders based on QueryData rely on

        I considered accepting an error flag to control Transaction rollback, but I really only want to capture SQLException that force transaction rollback.

        Parameters:
        conn - The Connection to close. This can be null since it makes it easy to close connections in a finally block.
        transaction - Context for the connection, we will only close the connection for Transaction.AUTO_COMMIT
        sqlException - Error status, null for no error