public class JdbcPersistorImpl extends Object implements Persistor
A basic JDBC Implementation of a Persistor. This implementation expects the user to provide the following configuration in Transformers persistence.conf configuration file
persistence.conf
persistence-classid com/caplin/transformer/persistence/JdbcPersistorImpl
add-database-params
init-string <jdbc url>
driver-name <jdbc driver - must be explicitly added to transformers jvm-global-classpath>
username <db user>
password <db password>
extra-params <timeout in seconds for Connection.isValid()>
end-database-params
java.conf
jvm-global-classpath <path_to_jdbc_driver>
end-database-params
Constructor and Description |
---|
JdbcPersistorImpl(PersistorConfiguration configuration,
Logger logger) |
Modifier and Type | Method and Description |
---|---|
int |
onDelete(String table,
Map<String,String> selector)
Delete one or more rows from a table
|
List<Map<String,String>> |
onQuery(String table,
String query,
QueryParams params)
Query the database for results.
|
void |
onShutdown()
Called when transformer shuts down to close open connections and release acquired resources
|
int |
onUpsert(String table,
Map<String,String> keys,
Map<String,String> data)
Implement this method to handle update or insert callbacks.
|
public JdbcPersistorImpl(PersistorConfiguration configuration, Logger logger) throws Exception
Exception
public int onUpsert(String table, Map<String,String> keys, Map<String,String> data)
Persistor
Implement this method to handle update or insert callbacks. This method is expected to update an existing row or insert a new one if the update did not affect any rows
This method should attempt to update an existing row first by setting all the values given in data and
using the entries of this map where the key matches key
anded together in the where clause
like: "key1=value1 and key2=value2"
.
If the update did not affect any rows, then an insert should be executed with the data given
onUpsert
in interface Persistor
table
- The table to be modifiedkeys
- Map containing column/value pairs to be used in the where clause for updates. If no row matches the
criteria, a combination of keys
and data
is used as data for the rows, where
entries in data
take precedence over entries in keys
data
- Map containing column/value pairs to be set in the row identified by keys
public List<Map<String,String>> onQuery(String table, String query, QueryParams params)
Persistor
Query the database for results.
Queries the database with query
being a valid sql selection and args
being a list of
arguments that get bound to ? in the query string
onQuery
in interface Persistor
table
- The table name to execute the query on.query
- a valid sql where clause or an empty string for all rows.params
- QueryParams
to be used for the querypublic int onDelete(String table, Map<String,String> selector)
Persistor
Delete one or more rows from a table
Delete rows where the all the columns specified in selector match their specified values
public void onShutdown()
Persistor
Called when transformer shuts down to close open connections and release acquired resources
onShutdown
in interface Persistor
Please send bug reports and comments to Caplin support