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
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 Summary
FieldsModifier and TypeFieldDescriptionprivate Connection
Stores the connection.private final EventType<? extends ConfigurationErrorEvent>
The type of the event to send in case of an error.private final String
The property configurationName for an error event.private final Object
The property value for an error event.private final EventType<?>
The type of the operation which caused an error.private PreparedStatement
Stores the statement.private ResultSet
Stores the result set. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
JdbcOperation
(EventType<? extends ConfigurationErrorEvent> errEvType, EventType<?> opType, String errPropName, Object errPropVal) Creates a new instance ofJdbcOperation
and initializes the properties related to the error event. -
Method Summary
Modifier and TypeMethodDescriptionprotected PreparedStatement
createStatement
(String sql, boolean nameCol) Creates aPreparedStatement
object for executing the specified SQL statement.execute()
Executes this operation.protected Connection
Gets the current connection.protected PreparedStatement
initStatement
(String sql, boolean nameCol, Object... params) Creates an initializes aPreparedStatement
object for executing an SQL statement.protected ResultSet
openResultSet
(String sql, boolean nameCol, Object... params) Creates aPreparedStatement
for a query, initializes it and executes it.protected abstract T
Performs the JDBC operation.
-
Field Details
-
conn
Stores the connection. -
pstmt
Stores the statement. -
resultSet
Stores the result set. -
errorEventType
The type of the event to send in case of an error. -
operationEventType
The type of the operation which caused an error. -
errorPropertyName
The property configurationName for an error event. -
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 ofJdbcOperation
and initializes the properties related to the error event.- Parameters:
errEvType
- the type of the error eventopType
- the operation event typeerrPropName
- the property configurationName for the error eventerrPropVal
- the property value for the error event
-
-
Method Details
-
execute
Executes this operation. This method obtains a database connection and then delegates toperformOperation()
. 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
Gets the current connection. This method can be called whileexecute()
is running. It returns null otherwise.- Returns:
- the current connection
-
createStatement
Creates aPreparedStatement
object for executing the specified SQL statement.- Parameters:
sql
- the statement to be executednameCol
- 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 aPreparedStatement
object for executing an SQL statement. This method first callscreateStatement()
for creating the statement and then initializes the statement's parameters.- Parameters:
sql
- the statement to be executednameCol
- a flag whether the configurationName column should be taken into accountparams
- 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 aPreparedStatement
for a query, initializes it and executes it. The resultingResultSet
is returned.- Parameters:
sql
- the statement to be executednameCol
- a flag whether the configurationName column should be taken into accountparams
- the parameters for the statement- Returns:
- the
ResultSet
produced by the query - Throws:
SQLException
- if an SQL error occurs
-
performOperation
Performs the JDBC operation. This method is called byexecute()
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
-