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
    Modifier and Type | Field and Description
    --- | ---
    `protected Log` | `logger` Logger available to subclasses

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TableMetaDataContext()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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