Package com.adaptris.core.services.jdbc
Class JdbcMapInsert
- java.lang.Object
-
- com.adaptris.core.ServiceImp
-
- com.adaptris.core.jdbc.JdbcService
-
- com.adaptris.core.services.jdbc.JdbcMapInsert
-
- All Implemented Interfaces:
AdaptrisComponent
,ComponentLifecycle
,ComponentLifecycleExtension
,ConnectedService
,MessageEventGenerator
,Service
,StateManagedComponent
- Direct Known Subclasses:
JdbcMapUpsert
public abstract class JdbcMapInsert extends JdbcService
Base behaviour of inserting Objects directly into a db.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JdbcMapInsert.BasicType
Handles simple type conversions for the fields in the map that needs to be inserted into the DB.class
JdbcMapInsert.InsertWrapper
protected static interface
JdbcMapInsert.StatementParam
static interface
JdbcMapInsert.StatementWrapper
-
Field Summary
-
Fields inherited from class com.adaptris.core.ServiceImp
log
-
-
Constructor Summary
Constructors Constructor Description JdbcMapInsert()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AdaptrisMessage
addUpdatedMetadata(int count, AdaptrisMessage msg)
protected JdbcMapInsert.StatementParam
buildStatementParam(java.lang.String key, java.lang.String value)
protected void
closeJdbcService()
Close the service.protected java.lang.String
columnBookend()
java.lang.Character
getColumnBookendCharacter()
KeyValuePairSet
getFieldMappings()
java.lang.String
getRowsAffectedMetadataKey()
java.lang.String
getTable()
protected int
handleInsert(java.lang.String tableName, java.sql.Connection conn, java.util.Map<java.lang.String,java.lang.String> obj)
protected void
initJdbcService()
protected void
prepareService()
void
setColumnBookendCharacter(java.lang.Character c)
Set the character used to bookend the column names.void
setFieldMappings(KeyValuePairSet mappings)
Set the converters for various fields in the map.void
setRowsAffectedMetadataKey(java.lang.String key)
Set the metadata that will contain the number of rows inserted/updated by this service.void
setTable(java.lang.String s)
protected void
startService()
Start the service.protected void
stopService()
Stop the service.protected java.lang.String
table(AdaptrisMessage msg)
<T extends JdbcMapInsert>
TwithColumnBookend(java.lang.Character c)
<T extends JdbcMapInsert>
TwithMappings(KeyValuePairSet s)
<T extends JdbcMapInsert>
TwithRowsAffectedMetadataKey(java.lang.String s)
<T extends JdbcMapInsert>
TwithTable(java.lang.String s)
-
Methods inherited from class com.adaptris.core.jdbc.JdbcService
applyTimeout, closeService, createStatement, getConnection, getConnection, getStatementTimeout, initService, prepare, prepareStatement, prepareStatement, setConnection, setStatementTimeout, start, stop
-
Methods inherited from class com.adaptris.core.ServiceImp
changeState, close, continueOnFailure, createName, createQualifier, getContinueOnFail, getIsTrackingEndpoint, getUniqueId, init, isBranching, isTrackingEndpoint, requestClose, requestInit, requestStart, requestStop, retrieveComponentState, setContinueOnFail, setIsTrackingEndpoint, setUniqueId
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.adaptris.core.AdaptrisComponent
getUniqueId
-
Methods inherited from interface com.adaptris.core.ComponentLifecycle
close, init
-
Methods inherited from interface com.adaptris.core.MessageEventGenerator
createName, createQualifier, isTrackingEndpoint
-
Methods inherited from interface com.adaptris.core.Service
continueOnFailure, doService, isBranching, setUniqueId
-
Methods inherited from interface com.adaptris.core.StateManagedComponent
changeState, requestClose, requestInit, requestStart, requestStop, retrieveComponentState
-
-
-
-
Method Detail
-
getTable
public java.lang.String getTable()
- Returns:
- the table
-
setTable
public void setTable(java.lang.String s)
- Parameters:
s
- the table to insert on.
-
table
protected java.lang.String table(AdaptrisMessage msg)
-
withTable
public <T extends JdbcMapInsert> T withTable(java.lang.String s)
-
getFieldMappings
public KeyValuePairSet getFieldMappings()
-
setFieldMappings
public void setFieldMappings(KeyValuePairSet mappings)
Set the converters for various fields in the map.In the event that the database doesn't auto-convert types (e.g. MySQL will convert
2017-01-01
into a DATE if that is the column type); you can specify the java type that the string should be converted to; if the type cannot be handled automagically then it is assumed to be a fully qualified classname with a String constructor.- Parameters:
mappings
- the key is the key in the map (e.g. the JSON fieldname), the value is theJdbcMapInsert.BasicType
that we should attempt to convert to- See Also:
JdbcMapInsert.BasicType
-
withMappings
public <T extends JdbcMapInsert> T withMappings(KeyValuePairSet s)
-
buildStatementParam
protected JdbcMapInsert.StatementParam buildStatementParam(java.lang.String key, java.lang.String value)
-
closeJdbcService
protected void closeJdbcService()
Description copied from class:JdbcService
Close the service.This is called before the connection is closed
- Specified by:
closeJdbcService
in classJdbcService
-
initJdbcService
protected void initJdbcService() throws CoreException
- Specified by:
initJdbcService
in classJdbcService
- Throws:
CoreException
-
prepareService
protected void prepareService() throws CoreException
- Specified by:
prepareService
in classJdbcService
- Throws:
CoreException
-
startService
protected void startService() throws CoreException
Description copied from class:JdbcService
Start the service.This is called after the connection is started
- Specified by:
startService
in classJdbcService
- Throws:
CoreException
-
stopService
protected void stopService()
Description copied from class:JdbcService
Stop the service.This is called after before the connection is stopped
- Specified by:
stopService
in classJdbcService
-
handleInsert
protected int handleInsert(java.lang.String tableName, java.sql.Connection conn, java.util.Map<java.lang.String,java.lang.String> obj) throws ServiceException
- Throws:
ServiceException
-
addUpdatedMetadata
protected AdaptrisMessage addUpdatedMetadata(int count, AdaptrisMessage msg)
-
getColumnBookendCharacter
public java.lang.Character getColumnBookendCharacter()
-
setColumnBookendCharacter
public void setColumnBookendCharacter(java.lang.Character c)
Set the character used to bookend the column names.Sometimes you may need to bookend the column names with something like a
`
because the names are in fact reserved words. Specify this as required.- Parameters:
c
- default is null (or no book-ending).
-
withColumnBookend
public <T extends JdbcMapInsert> T withColumnBookend(java.lang.Character c)
-
columnBookend
protected java.lang.String columnBookend()
-
getRowsAffectedMetadataKey
public java.lang.String getRowsAffectedMetadataKey()
-
setRowsAffectedMetadataKey
public void setRowsAffectedMetadataKey(java.lang.String key)
Set the metadata that will contain the number of rows inserted/updated by this service.- Parameters:
key
- defaults to the empty string, and if not set, no metadata will be set.- Since:
- 3.9.0
-
withRowsAffectedMetadataKey
public <T extends JdbcMapInsert> T withRowsAffectedMetadataKey(java.lang.String s)
-
-