Class DatabaseConfiguration.JdbcOperation<T>

java.lang.Object
org.apache.commons.configuration2.DatabaseConfiguration.JdbcOperation<T>
Type Parameters:
T - the type of the results produced by a JDBC operation
Enclosing class:
DatabaseConfiguration

private 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 Details

    • conn

      private Connection conn
      Stores the connection.
    • pstmt

      private PreparedStatement pstmt
      Stores the statement.
    • resultSet

      private ResultSet resultSet
      Stores the result set.
    • errorEventType

      private final EventType<? extends ConfigurationErrorEvent> errorEventType
      The type of the event to send in case of an error.
    • operationEventType

      private final EventType<?> operationEventType
      The type of the operation which caused an error.
    • errorPropertyName

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

      private final Object errorPropertyValue
      The property value for an error event.
  • Constructor Details

    • JdbcOperation

      protected JdbcOperation(EventType<? extends ConfigurationErrorEvent> errEvType, EventType<?> opType, String errPropName, Object errPropVal)
      Creates a new instance of JdbcOperation and initializes the properties related to the error event.
      Parameters:
      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 Details

    • 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()
      Gets 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