Class DatabaseConfiguration.JdbcOperation<T>

  • Type Parameters:
    T - the type of the results produced by a JDBC operation
    Enclosing class:
    DatabaseConfiguration

    protected abstract class DatabaseConfiguration.JdbcOperation<T>
    extends Object
    An internally used helper class for simplifying database access through plain JDBC. This class provides a simple framework for creating and executing a JDBC statement. It especially takes care of proper handling of JDBC resources even in case of an error.
    • Field Detail

      • resultSet

        protected ResultSet resultSet
        Stores the result set.
      • errorEventType

        protected final org.apache.commons.configuration2.event.EventType<? extends org.apache.commons.configuration2.event.ConfigurationErrorEvent> errorEventType
        The type of the event to send in case of an error.
      • operationEventType

        protected final org.apache.commons.configuration2.event.EventType<?> operationEventType
        The type of the operation which caused an error.
      • errorPropertyName

        protected final String errorPropertyName
        The property configurationName for an error event.
      • errorPropertyValue

        protected final Object errorPropertyValue
        The property value for an error event.
      • readOnly

        protected final boolean readOnly
        Whether a read-only connection suffices for the JDBC operation.
    • Constructor Detail

      • JdbcOperation

        protected JdbcOperation​(boolean readOnly,
                                org.apache.commons.configuration2.event.EventType<? extends org.apache.commons.configuration2.event.ConfigurationErrorEvent> errEvType,
                                org.apache.commons.configuration2.event.EventType<?> opType,
                                String errPropName,
                                Object errPropVal)
        Creates a new instance of JdbcOperation and initializes the properties related to the error event.
        Parameters:
        readOnly - Whether a read-only connection suffices for the JDBC operation.
        errEvType - the type of the error event
        opType - the operation event type
        errPropName - the property configurationName for the error event
        errPropVal - the property value for the error event
    • Method Detail

      • execute

        public T execute()
        Executes this operation. This method obtains a database connection and then delegates to performOperation(). Afterwards it performs the necessary clean up. Exceptions that are thrown during the JDBC operation are caught and transformed into configuration error events.
        Returns:
        the result of the operation
      • getConnection

        protected Connection getConnection()
        Returns the current connection. This method can be called while execute() is running. It returns null otherwise.
        Returns:
        the current connection
      • createStatement

        protected PreparedStatement createStatement​(String sql,
                                                    boolean nameCol)
                                             throws SQLException
        Creates a PreparedStatement object for executing the specified SQL statement.
        Parameters:
        sql - the statement to be executed
        nameCol - a flag whether the configurationName column should be taken into account
        Returns:
        the prepared statement object
        Throws:
        SQLException - if an SQL error occurs
      • initStatement

        protected PreparedStatement initStatement​(String sql,
                                                  boolean nameCol,
                                                  Object... params)
                                           throws SQLException
        Creates an initializes a PreparedStatement object for executing an SQL statement. This method first calls createStatement() for creating the statement and then initializes the statement's parameters.
        Parameters:
        sql - the statement to be executed
        nameCol - a flag whether the configurationName column should be taken into account
        params - the parameters for the statement
        Returns:
        the initialized statement object
        Throws:
        SQLException - if an SQL error occurs
      • openResultSet

        protected ResultSet openResultSet​(String sql,
                                          boolean nameCol,
                                          Object... params)
                                   throws SQLException
        Creates a PreparedStatement for a query, initializes it and executes it. The resulting ResultSet is returned.
        Parameters:
        sql - the statement to be executed
        nameCol - a flag whether the configurationName column should be taken into account
        params - the parameters for the statement
        Returns:
        the ResultSet produced by the query
        Throws:
        SQLException - if an SQL error occurs
      • performOperation

        protected abstract T performOperation()
                                       throws SQLException
        Performs the JDBC operation. This method is called by execute() after this object has been fully initialized. Here the actual JDBC logic has to be placed.
        Returns:
        the result of the operation
        Throws:
        SQLException - if an SQL error occurs