public class SimpleJdbcInsert extends AbstractJdbcInsert implements SimpleJdbcInsertOperations
The meta data processing is based on the DatabaseMetaData provided by the JDBC driver. As long as the JBDC driver can provide the names of the columns for a specified table than we can rely on this auto-detection feature. If that is not the case, then the column names must be specified explicitly.
The actual insert is being handled using Spring's
JdbcTemplate
.
Many of the configuration methods return the current instance of the SimpleJdbcInsert to provide the ability to chain multiple ones together in a "fluent" interface style.
DatabaseMetaData
,
JdbcTemplate
logger
Constructor and Description |
---|
SimpleJdbcInsert(DataSource dataSource)
Constructor that takes one parameter with the JDBC DataSource to use when creating the
JdbcTemplate.
|
SimpleJdbcInsert(JdbcTemplate jdbcTemplate)
Alternative Constructor that takes one parameter with the JdbcTemplate to be used.
|
Modifier and Type | Method and Description |
---|---|
int |
execute(Map<String,?> args)
Execute the insert using the values passed in.
|
int |
execute(SqlParameterSource parameterSource)
Execute the insert using the values passed in.
|
Number |
executeAndReturnKey(Map<String,?> args)
Execute the insert using the values passed in and return the generated key.
|
Number |
executeAndReturnKey(SqlParameterSource parameterSource)
Execute the insert using the values passed in and return the generated key.
|
KeyHolder |
executeAndReturnKeyHolder(Map<String,?> args)
Execute the insert using the values passed in and return the generated keys.
|
KeyHolder |
executeAndReturnKeyHolder(SqlParameterSource parameterSource)
Execute the insert using the values passed in and return the generated keys.
|
int[] |
executeBatch(Map<String,?>... batch)
Execute a batch insert using the batch of values passed in.
|
int[] |
executeBatch(SqlParameterSource... batch)
Execute a batch insert using the batch of values passed in.
|
SimpleJdbcInsertOperations |
includeSynonymsForTableColumnMetaData()
Include synonyms for the column meta data lookups via JDBC.
|
SimpleJdbcInsertOperations |
useNativeJdbcExtractorForMetaData(NativeJdbcExtractor nativeJdbcExtractor)
Use a the provided NativeJdbcExtractor during the column meta data
lookups via JDBC.
|
SimpleJdbcInsert |
usingColumns(String... columnNames)
Specify the column names that the insert statement should be limited to use.
|
SimpleJdbcInsert |
usingGeneratedKeyColumns(String... columnNames)
Specify the names of any columns that have auto generated keys.
|
SimpleJdbcInsert |
withCatalogName(String catalogName)
Specify the catalog name, if any, to be used for the insert.
|
SimpleJdbcInsertOperations |
withoutTableColumnMetaDataAccess()
Turn off any processing of column meta data information obtained via JDBC.
|
SimpleJdbcInsert |
withSchemaName(String schemaName)
Specify the schema name, if any, to be used for the insert.
|
SimpleJdbcInsert |
withTableName(String tableName)
Specify the table name to be used for the insert.
|
checkCompiled, checkIfConfigurationModificationIsAllowed, compile, compileInternal, doExecute, doExecute, doExecuteAndReturnKey, doExecuteAndReturnKey, doExecuteAndReturnKeyHolder, doExecuteAndReturnKeyHolder, doExecuteBatch, doExecuteBatch, getCatalogName, getColumnNames, getGeneratedKeyNames, getInsertString, getInsertTypes, getJdbcTemplate, getSchemaName, getTableName, isCompiled, matchInParameterValuesWithInsertColumns, matchInParameterValuesWithInsertColumns, onCompileInternal, setAccessTableColumnMetaData, setCatalogName, setColumnNames, setGeneratedKeyName, setGeneratedKeyNames, setNativeJdbcExtractor, setOverrideIncludeSynonymsDefault, setSchemaName, setTableName
public SimpleJdbcInsert(DataSource dataSource)
dataSource
- the DataSource
to useJdbcAccessor.setDataSource(javax.sql.DataSource)
public SimpleJdbcInsert(JdbcTemplate jdbcTemplate)
jdbcTemplate
- the JdbcTemplate
to useJdbcAccessor.setDataSource(javax.sql.DataSource)
public SimpleJdbcInsert withTableName(String tableName)
SimpleJdbcInsertOperations
withTableName
in interface SimpleJdbcInsertOperations
tableName
- the name of the stored tablepublic SimpleJdbcInsert withSchemaName(String schemaName)
SimpleJdbcInsertOperations
withSchemaName
in interface SimpleJdbcInsertOperations
schemaName
- the name of the schemapublic SimpleJdbcInsert withCatalogName(String catalogName)
SimpleJdbcInsertOperations
withCatalogName
in interface SimpleJdbcInsertOperations
catalogName
- the name of the catalogpublic SimpleJdbcInsert usingColumns(String... columnNames)
SimpleJdbcInsertOperations
usingColumns
in interface SimpleJdbcInsertOperations
columnNames
- one or more column namespublic SimpleJdbcInsert usingGeneratedKeyColumns(String... columnNames)
SimpleJdbcInsertOperations
usingGeneratedKeyColumns
in interface SimpleJdbcInsertOperations
columnNames
- one or more column namespublic SimpleJdbcInsertOperations withoutTableColumnMetaDataAccess()
SimpleJdbcInsertOperations
withoutTableColumnMetaDataAccess
in interface SimpleJdbcInsertOperations
public SimpleJdbcInsertOperations includeSynonymsForTableColumnMetaData()
SimpleJdbcInsertOperations
includeSynonymsForTableColumnMetaData
in interface SimpleJdbcInsertOperations
public SimpleJdbcInsertOperations useNativeJdbcExtractorForMetaData(NativeJdbcExtractor nativeJdbcExtractor)
SimpleJdbcInsertOperations
useNativeJdbcExtractorForMetaData
in interface SimpleJdbcInsertOperations
public int execute(Map<String,?> args)
SimpleJdbcInsertOperations
execute
in interface SimpleJdbcInsertOperations
args
- Map containing column names and corresponding valuepublic int execute(SqlParameterSource parameterSource)
SimpleJdbcInsertOperations
execute
in interface SimpleJdbcInsertOperations
parameterSource
- SqlParameterSource containing values to use for insertpublic Number executeAndReturnKey(Map<String,?> args)
SimpleJdbcInsertOperations
This requires that the name of the columns with auto generated keys have been specified. This method will always return a KeyHolder but the caller must verify that it actually contains the generated keys.
executeAndReturnKey
in interface SimpleJdbcInsertOperations
args
- Map containing column names and corresponding valuepublic Number executeAndReturnKey(SqlParameterSource parameterSource)
SimpleJdbcInsertOperations
This requires that the name of the columns with auto generated keys have been specified. This method will always return a KeyHolder but the caller must verify that it actually contains the generated keys.
executeAndReturnKey
in interface SimpleJdbcInsertOperations
parameterSource
- SqlParameterSource containing values to use for insertpublic KeyHolder executeAndReturnKeyHolder(Map<String,?> args)
SimpleJdbcInsertOperations
This requires that the name of the columns with auto generated keys have been specified. This method will always return a KeyHolder but the caller must verify that it actually contains the generated keys.
executeAndReturnKeyHolder
in interface SimpleJdbcInsertOperations
args
- Map containing column names and corresponding valuepublic KeyHolder executeAndReturnKeyHolder(SqlParameterSource parameterSource)
SimpleJdbcInsertOperations
This requires that the name of the columns with auto generated keys have been specified. This method will always return a KeyHolder but the caller must verify that it actually contains the generated keys.
executeAndReturnKeyHolder
in interface SimpleJdbcInsertOperations
parameterSource
- SqlParameterSource containing values to use for insertpublic int[] executeBatch(Map<String,?>... batch)
SimpleJdbcInsertOperations
executeBatch
in interface SimpleJdbcInsertOperations
batch
- an array of Maps containing a batch of column names and corresponding valuepublic int[] executeBatch(SqlParameterSource... batch)
SimpleJdbcInsertOperations
executeBatch
in interface SimpleJdbcInsertOperations
batch
- an array of SqlParameterSource containing values for the batch