org.springframework.jdbc.core.metadata
Interface TableMetaDataProvider

All Known Implementing Classes:
DerbyTableMetaDataProvider, GenericTableMetaDataProvider, HsqlTableMetaDataProvider, OracleTableMetaDataProvider, PostgresTableMetaDataProvider

public interface TableMetaDataProvider

Interface specifying the API to be implemented by a class providing table metedata. This is intended for internal use by the Simple JDBC classes.

Since:
2.5
Author:
Thomas Risberg

Method Summary
 String catalogNameToUse(String catalogName)
          Get the catalog name formatted based on metadata information.
 String getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName)
          Get the simple query to retrieve a generated key
 List<TableParameterMetaData> getTableParameterMetaData()
          Get the table parameter metadata that is currently used.
 void initializeWithMetaData(DatabaseMetaData databaseMetaData)
          Initialize using the database metedata provided
 void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName, String schemaName, String tableName)
          Initialize using provided database metadata, table and column information.
 boolean isGeneratedKeysColumnNameArraySupported()
          Does this database support a column name String array for retreiving generated keys Connection.createStruct(String, Object[])
 boolean isGetGeneratedKeysSimulated()
          Does this database support a simple quey to retrieve the generated key whe the JDBC 3.0 feature of retreiving generated keys is not supported DatabaseMetaData.supportsGetGeneratedKeys()
 boolean isGetGeneratedKeysSupported()
          Does this database support the JDBC 3.0 feature of retreiving generated keys DatabaseMetaData.supportsGetGeneratedKeys()
 boolean isTableColumnMetaDataUsed()
          Are we using the meta data for the table columns?
 String metaDataCatalogNameToUse(String catalogName)
          Provide any modification of the catalog name passed in to match the meta data currently used.
 String metaDataSchemaNameToUse(String schemaName)
          Provide any modification of the schema name passed in to match the meta data currently used.
 String schemaNameToUse(String schemaName)
          Get the schema name formatted based on metadata information.
 void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
          Set the NativeJdbcExtractor to use to retrieve the native connection if necessary
 String tableNameToUse(String tableName)
          Get the table name formatted based on metadata information.
 

Method Detail

initializeWithMetaData

void initializeWithMetaData(DatabaseMetaData databaseMetaData)
                            throws SQLException
Initialize using the database metedata provided

Parameters:
databaseMetaData -
Throws:
SQLException

initializeWithTableColumnMetaData

void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData,
                                       String catalogName,
                                       String schemaName,
                                       String tableName)
                                       throws SQLException
Initialize using provided database metadata, table and column information. This initalization can be turned off by specifying that column meta data should not be used.

Parameters:
databaseMetaData - used to retrieve database specific information
catalogName - name of catalog to use or null
schemaName - name of schema name to use or null
tableName - name of the table
Throws:
SQLException

tableNameToUse

String tableNameToUse(String tableName)
Get the table name formatted based on metadata information. This could include altering the case.

Parameters:
tableName -
Returns:
table name formatted

catalogNameToUse

String catalogNameToUse(String catalogName)
Get the catalog name formatted based on metadata information. This could include altering the case.

Parameters:
catalogName -
Returns:
catalog name formatted

schemaNameToUse

String schemaNameToUse(String schemaName)
Get the schema name formatted based on metadata information. This could include altering the case.

Parameters:
schemaName -
Returns:
schema name formatted

metaDataCatalogNameToUse

String metaDataCatalogNameToUse(String catalogName)
Provide any modification of the catalog name passed in to match the meta data currently used. The reyurned value will be used for meta data lookups. This could include alterig the case used or providing a base catalog if mone provided.

Parameters:
catalogName -
Returns:
catalog name to use

metaDataSchemaNameToUse

String metaDataSchemaNameToUse(String schemaName)
Provide any modification of the schema name passed in to match the meta data currently used. The reyurned value will be used for meta data lookups. This could include alterig the case used or providing a base schema if mone provided.

Parameters:
schemaName -
Returns:
schema name to use

isTableColumnMetaDataUsed

boolean isTableColumnMetaDataUsed()
Are we using the meta data for the table columns?


isGetGeneratedKeysSupported

boolean isGetGeneratedKeysSupported()
Does this database support the JDBC 3.0 feature of retreiving generated keys DatabaseMetaData.supportsGetGeneratedKeys()


isGetGeneratedKeysSimulated

boolean isGetGeneratedKeysSimulated()
Does this database support a simple quey to retrieve the generated key whe the JDBC 3.0 feature of retreiving generated keys is not supported DatabaseMetaData.supportsGetGeneratedKeys()


getSimpleQueryForGetGeneratedKey

String getSimpleQueryForGetGeneratedKey(String tableName,
                                        String keyColumnName)
Get the simple query to retrieve a generated key


isGeneratedKeysColumnNameArraySupported

boolean isGeneratedKeysColumnNameArraySupported()
Does this database support a column name String array for retreiving generated keys Connection.createStruct(String, Object[])


getTableParameterMetaData

List<TableParameterMetaData> getTableParameterMetaData()
Get the table parameter metadata that is currently used.

Returns:
List of TableParameterMetaData

setNativeJdbcExtractor

void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
Set the NativeJdbcExtractor to use to retrieve the native connection if necessary