Class GenericTableMetaDataProvider
java.lang.Object
org.springframework.jdbc.core.metadata.GenericTableMetaDataProvider
- All Implemented Interfaces:
TableMetaDataProvider
- Direct Known Subclasses:
DerbyTableMetaDataProvider,HsqlTableMetaDataProvider,OracleTableMetaDataProvider,PostgresTableMetaDataProvider
A generic implementation of the
TableMetaDataProvider interface
which should provide enough features for all supported databases.- Since:
- 2.5
- Author:
- Thomas Risberg, Juergen Hoeller, Sam Brannen
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final org.apache.commons.logging.LogLogger available to subclasses. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedGenericTableMetaDataProvider(DatabaseMetaData databaseMetaData) Constructor used to initialize with provided database meta-data. -
Method Summary
Modifier and TypeMethodDescriptioncatalogNameToUse(String catalogName) Get the catalog name formatted based on meta-data information.columnNameToUse(String columnName) Get the column name formatted based on meta-data information.protected StringProvide access to the version info for subclasses.protected StringProvide access to the default schema for subclasses.Get the string used to quote SQL identifiers.getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName) Get the simple query to retrieve generated keys when the JDBC feature for retrieving generated keys is not supported.Get the table parameter meta-data that is currently used.voidinitializeWithMetaData(DatabaseMetaData databaseMetaData) Initialize using the database meta-data provided.voidinitializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName, String schemaName, String tableName) Initialize using provided database meta-data, table and column information.booleanDoes this database support a column name String array for retrieving generated keys?booleanDoes this database support a simple query to retrieve generated keys when the JDBC feature for retrieving generated keys is not supported?booleanDoes this database support the JDBC feature for retrieving generated keys?booleanbooleanbooleanAre we using the meta-data for the table columns?metaDataCatalogNameToUse(String catalogName) Provide any modification of the catalog name passed in to match the meta-data currently used.metaDataSchemaNameToUse(String schemaName) Provide any modification of the schema name passed in to match the meta-data currently used.schemaNameToUse(String schemaName) Get the schema name formatted based on meta-data information.voidsetGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) voidsetGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) voidsetStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) voidsetStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) tableNameToUse(String tableName) Get the table name formatted based on meta-data information.
-
Field Details
-
logger
protected static final org.apache.commons.logging.Log loggerLogger available to subclasses.
-
-
Constructor Details
-
GenericTableMetaDataProvider
Constructor used to initialize with provided database meta-data.- Parameters:
databaseMetaData- meta-data to be used- Throws:
SQLException
-
-
Method Details
-
initializeWithMetaData
Description copied from interface:TableMetaDataProviderInitialize using the database meta-data provided.- Specified by:
initializeWithMetaDatain interfaceTableMetaDataProvider- Parameters:
databaseMetaData- used to retrieve database specific information- Throws:
SQLException- in case of initialization failure
-
initializeWithTableColumnMetaData
public void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, @Nullable String catalogName, @Nullable String schemaName, @Nullable String tableName) throws SQLException Description copied from interface:TableMetaDataProviderInitialize using provided database meta-data, table and column information.This initialization can be turned off by specifying that column meta-data should not be used.
- Specified by:
initializeWithTableColumnMetaDatain interfaceTableMetaDataProvider- Parameters:
databaseMetaData- used to retrieve database specific informationcatalogName- name of catalog to use (ornullif none)schemaName- name of schema name to use (ornullif none)tableName- name of the table- Throws:
SQLException- in case of initialization failure
-
getTableParameterMetaData
Description copied from interface:TableMetaDataProviderGet the table parameter meta-data that is currently used.- Specified by:
getTableParameterMetaDatain interfaceTableMetaDataProvider- Returns:
- a List of
TableParameterMetaData
-
tableNameToUse
Description copied from interface:TableMetaDataProviderGet the table name formatted based on meta-data information.This could include altering the case.
- Specified by:
tableNameToUsein interfaceTableMetaDataProvider
-
columnNameToUse
Description copied from interface:TableMetaDataProviderGet the column name formatted based on meta-data information.This could include altering the case.
- Specified by:
columnNameToUsein interfaceTableMetaDataProvider
-
catalogNameToUse
Description copied from interface:TableMetaDataProviderGet the catalog name formatted based on meta-data information.This could include altering the case.
- Specified by:
catalogNameToUsein interfaceTableMetaDataProvider
-
schemaNameToUse
Description copied from interface:TableMetaDataProviderGet the schema name formatted based on meta-data information.This could include altering the case.
- Specified by:
schemaNameToUsein interfaceTableMetaDataProvider
-
metaDataCatalogNameToUse
Description copied from interface:TableMetaDataProviderProvide any modification of the catalog name passed in to match the meta-data currently used.The returned value will be used for meta-data lookups.
This could include altering the case used or providing a base catalog if none is provided.
- Specified by:
metaDataCatalogNameToUsein interfaceTableMetaDataProvider
-
metaDataSchemaNameToUse
Description copied from interface:TableMetaDataProviderProvide any modification of the schema name passed in to match the meta-data currently used.The returned value will be used for meta-data lookups.
This could include altering the case used or providing a base schema if none is provided.
- Specified by:
metaDataSchemaNameToUsein interfaceTableMetaDataProvider
-
getDefaultSchema
Provide access to the default schema for subclasses. -
getDatabaseVersion
Provide access to the version info for subclasses. -
isTableColumnMetaDataUsed
public boolean isTableColumnMetaDataUsed()Description copied from interface:TableMetaDataProviderAre we using the meta-data for the table columns?- Specified by:
isTableColumnMetaDataUsedin interfaceTableMetaDataProvider
-
setGetGeneratedKeysSupported
public void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) -
isGetGeneratedKeysSupported
public boolean isGetGeneratedKeysSupported()Description copied from interface:TableMetaDataProviderDoes this database support the JDBC feature for retrieving generated keys?- Specified by:
isGetGeneratedKeysSupportedin interfaceTableMetaDataProvider- See Also:
-
isGetGeneratedKeysSimulated
public boolean isGetGeneratedKeysSimulated()Description copied from interface:TableMetaDataProviderDoes this database support a simple query to retrieve generated keys when the JDBC feature for retrieving generated keys is not supported? -
getSimpleQueryForGetGeneratedKey
Description copied from interface:TableMetaDataProviderGet the simple query to retrieve generated keys when the JDBC feature for retrieving generated keys is not supported.- Specified by:
getSimpleQueryForGetGeneratedKeyin interfaceTableMetaDataProvider- See Also:
-
setGeneratedKeysColumnNameArraySupported
public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) -
isGeneratedKeysColumnNameArraySupported
public boolean isGeneratedKeysColumnNameArraySupported()Description copied from interface:TableMetaDataProviderDoes this database support a column name String array for retrieving generated keys?- Specified by:
isGeneratedKeysColumnNameArraySupportedin interfaceTableMetaDataProvider- See Also:
-
setStoresUpperCaseIdentifiers
public void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) -
isStoresUpperCaseIdentifiers
public boolean isStoresUpperCaseIdentifiers() -
setStoresLowerCaseIdentifiers
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) -
isStoresLowerCaseIdentifiers
public boolean isStoresLowerCaseIdentifiers() -
getIdentifierQuoteString
Description copied from interface:TableMetaDataProviderGet the string used to quote SQL identifiers.This method returns a space (
" ") if identifier quoting is not supported.- Specified by:
getIdentifierQuoteStringin interfaceTableMetaDataProvider- Returns:
- database identifier quote string
- See Also:
-