org.springframework.jdbc.core.metadata

## Class TableMetaDataContext

- java.lang.Object
- - org.springframework.jdbc.core.metadata.TableMetaDataContext

    public class TableMetaDataContext
    extends Object

Class to manage context metadata used for the configuration and execution of operations on a database table.

Since:
  2.5
Author:
  Thomas Risberg

### Field Summary

Fields
`protected Log` `logger` Logger available to subclasses

### Constructor Summary

Constructors
Constructor and Description
`TableMetaDataContext()`

### Method Summary

Methods
`String` `createInsertString(String[] generatedKeyNames)` Build the insert string based on configuration and metadata information
`int[]` `createInsertTypes()` Build the array of `Types` based on configuration and metadata information
`String` `getCatalogName()` Get the name of the catalog for this context.
`String` `getSchemaName()` Get the name of the schema for this context.
`String` `getSimulationQueryForGetGeneratedKey(String tableName, String keyColumnName)` Does this database support simple query to retrieve generated keys when the JDBC 3.0 feature is not supported.
`List<String>` `getTableColumns()` Get a List of the table column names.
`String` `getTableName()` Get the name of the table for this context.
`boolean` `isAccessTableColumnMetaData()` Are we accessing table meta data?
`boolean` `isGeneratedKeysColumnNameArraySupported()` Is a column name String array for retrieving generated keys supported? `Connection.createStruct(String, Object[])`?
`boolean` `isGetGeneratedKeysSimulated()` Does this database support simple query to retrieve generated keys when the JDBC 3.0 feature is not supported.
`boolean` `isGetGeneratedKeysSupported()` Does this database support the JDBC 3.0 feature of retrieving generated keys `DatabaseMetaData.supportsGetGeneratedKeys()`?
`boolean` `isOverrideIncludeSynonymsDefault()` Are we overriding include synonyms default?
`List<Object>` `matchInParameterValuesWithInsertColumns(Map<String,Object> inParameters)` Match the provided column names and values with the list of columns used.
`List<Object>` `matchInParameterValuesWithInsertColumns(SqlParameterSource parameterSource)` Match the provided column names and values with the list of columns used.
`void` `processMetaData(DataSource dataSource, List<String> declaredColumns, String[] generatedKeyNames)` Process the current meta data with the provided configuration options.
`protected List<String>` `reconcileColumnsToUse(List<String> declaredColumns, String[] generatedKeyNames)` Compare columns created from metadata with declared columns and return a reconciled list.
`void` `setAccessTableColumnMetaData(boolean accessTableColumnMetaData)` Specify whether we should access table column meta data.
`void` `setCatalogName(String catalogName)` Set the name of the catalog for this context.
`void` `setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)` Set `NativeJdbcExtractor` to be used to retrieve the native connection.
`void` `setOverrideIncludeSynonymsDefault(boolean override)` Specify whether we should override default for accessing synonyms.
`void` `setSchemaName(String schemaName)` Set the name of the schema for this context.
`void` `setTableName(String tableName)` Set the name of the table for this context.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### logger

    protected final Log logger

Logger available to subclasses

### Constructor Detail

#### TableMetaDataContext

    public TableMetaDataContext()

### Method Detail

#### setTableName

    public void setTableName(String tableName)

Set the name of the table for this context.

#### getTableName

    public String getTableName()

Get the name of the table for this context.

#### setCatalogName

    public void setCatalogName(String catalogName)

Set the name of the catalog for this context.

#### getCatalogName

    public String getCatalogName()

Get the name of the catalog for this context.

#### setSchemaName

    public void setSchemaName(String schemaName)

Set the name of the schema for this context.

#### getSchemaName

    public String getSchemaName()

Get the name of the schema for this context.

#### setAccessTableColumnMetaData

    public void setAccessTableColumnMetaData(boolean accessTableColumnMetaData)

Specify whether we should access table column meta data.

#### isAccessTableColumnMetaData

    public boolean isAccessTableColumnMetaData()

Are we accessing table meta data?

#### setOverrideIncludeSynonymsDefault

    public void setOverrideIncludeSynonymsDefault(boolean override)

Specify whether we should override default for accessing synonyms.

#### isOverrideIncludeSynonymsDefault

    public boolean isOverrideIncludeSynonymsDefault()

Are we overriding include synonyms default?

#### getTableColumns

    public List<String> getTableColumns()

Get a List of the table column names.

#### isGetGeneratedKeysSupported

    public boolean isGetGeneratedKeysSupported()

Does this database support the JDBC 3.0 feature of retrieving generated keys `DatabaseMetaData.supportsGetGeneratedKeys()`?

#### isGetGeneratedKeysSimulated

    public boolean isGetGeneratedKeysSimulated()

Does this database support simple query to retrieve generated keys when the JDBC 3.0 feature is not supported. `DatabaseMetaData.supportsGetGeneratedKeys()`?

#### getSimulationQueryForGetGeneratedKey

    public String getSimulationQueryForGetGeneratedKey(String tableName,
                                              String keyColumnName)

Does this database support simple query to retrieve generated keys when the JDBC 3.0 feature is not supported. `DatabaseMetaData.supportsGetGeneratedKeys()`?

#### isGeneratedKeysColumnNameArraySupported

    public boolean isGeneratedKeysColumnNameArraySupported()

Is a column name String array for retrieving generated keys supported? `Connection.createStruct(String, Object[])`?

#### setNativeJdbcExtractor

    public void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)

Set `NativeJdbcExtractor` to be used to retrieve the native connection.

#### processMetaData

    public void processMetaData(DataSource dataSource,
                       List<String> declaredColumns,
                       String[] generatedKeyNames)

Process the current meta data with the provided configuration options.

Parameters:
  `dataSource` - the DataSource being used
  `declaredColumns` - any columns that are declared
  `generatedKeyNames` - name of generated keys

#### reconcileColumnsToUse

    protected List<String> reconcileColumnsToUse(List<String> declaredColumns,
                                     String[] generatedKeyNames)

Compare columns created from metadata with declared columns and return a reconciled list.

Parameters:
  `declaredColumns` - declared column names
  `generatedKeyNames` - names of generated key columns

#### matchInParameterValuesWithInsertColumns

    public List<Object> matchInParameterValuesWithInsertColumns(SqlParameterSource parameterSource)

Match the provided column names and values with the list of columns used.

Parameters:
  `parameterSource` - the parameter names and values

#### matchInParameterValuesWithInsertColumns

    public List<Object> matchInParameterValuesWithInsertColumns(Map<String,Object> inParameters)

Match the provided column names and values with the list of columns used.

Parameters:
  `inParameters` - the parameter names and values

#### createInsertString

    public String createInsertString(String[] generatedKeyNames)

Build the insert string based on configuration and metadata information

Returns:
  the insert string to be used

#### createInsertTypes

    public int[] createInsertTypes()

Build the array of `Types` based on configuration and metadata information

Returns:
  the array of types to be used