Class DatabaseConfiguration.JdbcOperation<T>
java.lang.Object
de.aristaflow.adept2.base.registry.dbconfiguration.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 TypeFieldDescriptionprotected ExtendedConnectionStores the connection.protected final EventType<? extends ConfigurationErrorEvent>The type of the event to send in case of an error.protected final StringThe property configurationName for an error event.protected final ObjectThe property value for an error event.protected final EventType<?>The type of the operation which caused an error.protected PreparedStatementStores the statement.protected final booleanWhether a read-only connection suffices for the JDBC operation.protected ResultSetStores the result set. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJdbcOperation(boolean readOnly, EventType<? extends ConfigurationErrorEvent> errEvType, EventType<?> opType, String errPropName, Object errPropVal) Creates a new instance ofJdbcOperationand initializes the properties related to the error event. -
Method Summary
Modifier and TypeMethodDescriptionprotected PreparedStatementcreateStatement(String sql, boolean nameCol) Creates aPreparedStatementobject for executing the specified SQL statement.execute()Executes this operation.protected ConnectionReturns the current connection.protected PreparedStatementinitStatement(String sql, boolean nameCol, Object... params) Creates an initializes aPreparedStatementobject for executing an SQL statement.protected ResultSetopenResultSet(String sql, boolean nameCol, Object... params) Creates aPreparedStatementfor a query, initializes it and executes it.protected abstract TPerforms 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. -
readOnly
protected final boolean readOnlyWhether a read-only connection suffices for the JDBC operation.
-
-
Constructor Details
-
JdbcOperation
protected JdbcOperation(boolean readOnly, EventType<? extends ConfigurationErrorEvent> errEvType, EventType<?> opType, String errPropName, Object errPropVal) Creates a new instance ofJdbcOperationand 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 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
Returns the current connection. This method can be called whileexecute()is running. It returns null otherwise.- Returns:
- the current connection
-
createStatement
Creates aPreparedStatementobject 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 aPreparedStatementobject 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 aPreparedStatementfor a query, initializes it and executes it. The resultingResultSetis 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
ResultSetproduced 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
-