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
Fields -
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.protected StringProvide access to version info for subclasses.protected StringProvide access to default schema for subclasses.getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName) Get the simple query to retrieve a generated key.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:Connection.createStruct(String, Object[])?booleanDoes this database support a simple query to retrieve the generated key when the JDBC 3.0 feature of retrieving generated keys is not supported?booleanDoes this database support the JDBC 3.0 feature of retrieving generated keys:DatabaseMetaData.supportsGetGeneratedKeys()?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
Logger 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
-
setStoresUpperCaseIdentifiers
public void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) -
isStoresUpperCaseIdentifiers
public boolean isStoresUpperCaseIdentifiers() -
setStoresLowerCaseIdentifiers
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) -
isStoresLowerCaseIdentifiers
public boolean isStoresLowerCaseIdentifiers() -
isTableColumnMetaDataUsed
public boolean isTableColumnMetaDataUsed()Description copied from interface:TableMetaDataProviderAre we using the meta-data for the table columns?- Specified by:
isTableColumnMetaDataUsedin interfaceTableMetaDataProvider
-
getTableParameterMetaData
Description copied from interface:TableMetaDataProviderGet the table parameter meta-data that is currently used.- Specified by:
getTableParameterMetaDatain interfaceTableMetaDataProvider- Returns:
- a List of
TableParameterMetaData
-
isGetGeneratedKeysSupported
public boolean isGetGeneratedKeysSupported()Description copied from interface:TableMetaDataProviderDoes this database support the JDBC 3.0 feature of retrieving generated keys:DatabaseMetaData.supportsGetGeneratedKeys()?- Specified by:
isGetGeneratedKeysSupportedin interfaceTableMetaDataProvider
-
isGetGeneratedKeysSimulated
public boolean isGetGeneratedKeysSimulated()Description copied from interface:TableMetaDataProviderDoes this database support a simple query to retrieve the generated key when the JDBC 3.0 feature of retrieving generated keys is not supported?- Specified by:
isGetGeneratedKeysSimulatedin interfaceTableMetaDataProvider- See Also:
-
getSimpleQueryForGetGeneratedKey
Description copied from interface:TableMetaDataProviderGet the simple query to retrieve a generated key.- Specified by:
getSimpleQueryForGetGeneratedKeyin interfaceTableMetaDataProvider
-
setGetGeneratedKeysSupported
public void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) -
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:Connection.createStruct(String, Object[])?- Specified by:
isGeneratedKeysColumnNameArraySupportedin interfaceTableMetaDataProvider
-
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
-
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
-
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 default schema for subclasses. -
getDatabaseVersion
Provide access to version info for subclasses.
-