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
-
Constructor Summary
ModifierConstructorDescriptionprotected
GenericTableMetaDataProvider
(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 String
Provide access to version info for subclasses.protected String
Provide 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.void
initializeWithMetaData
(DatabaseMetaData databaseMetaData) Initialize using the database meta-data provided.void
initializeWithTableColumnMetaData
(DatabaseMetaData databaseMetaData, String catalogName, String schemaName, String tableName) Initialize using provided database meta-data, table and column information.boolean
Does this database support a column name String array for retrieving generated keys:Connection.createStruct(String, Object[])
?boolean
Does this database support a simple query to retrieve the generated key when the JDBC 3.0 feature of retrieving generated keys is not supported?boolean
Does this database support the JDBC 3.0 feature of retrieving generated keys:DatabaseMetaData.supportsGetGeneratedKeys()
?boolean
boolean
boolean
Are 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.void
setGeneratedKeysColumnNameArraySupported
(boolean generatedKeysColumnNameArraySupported) void
setGetGeneratedKeysSupported
(boolean getGeneratedKeysSupported) void
setStoresLowerCaseIdentifiers
(boolean storesLowerCaseIdentifiers) void
setStoresUpperCaseIdentifiers
(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:TableMetaDataProvider
Are we using the meta-data for the table columns?- Specified by:
isTableColumnMetaDataUsed
in interfaceTableMetaDataProvider
-
getTableParameterMetaData
Description copied from interface:TableMetaDataProvider
Get the table parameter meta-data that is currently used.- Specified by:
getTableParameterMetaData
in interfaceTableMetaDataProvider
- Returns:
- a List of
TableParameterMetaData
-
isGetGeneratedKeysSupported
public boolean isGetGeneratedKeysSupported()Description copied from interface:TableMetaDataProvider
Does this database support the JDBC 3.0 feature of retrieving generated keys:DatabaseMetaData.supportsGetGeneratedKeys()
?- Specified by:
isGetGeneratedKeysSupported
in interfaceTableMetaDataProvider
-
isGetGeneratedKeysSimulated
public boolean isGetGeneratedKeysSimulated()Description copied from interface:TableMetaDataProvider
Does 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:
isGetGeneratedKeysSimulated
in interfaceTableMetaDataProvider
- See Also:
-
getSimpleQueryForGetGeneratedKey
Description copied from interface:TableMetaDataProvider
Get the simple query to retrieve a generated key.- Specified by:
getSimpleQueryForGetGeneratedKey
in interfaceTableMetaDataProvider
-
setGetGeneratedKeysSupported
public void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) -
setGeneratedKeysColumnNameArraySupported
public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) -
isGeneratedKeysColumnNameArraySupported
public boolean isGeneratedKeysColumnNameArraySupported()Description copied from interface:TableMetaDataProvider
Does this database support a column name String array for retrieving generated keys:Connection.createStruct(String, Object[])
?- Specified by:
isGeneratedKeysColumnNameArraySupported
in interfaceTableMetaDataProvider
-
initializeWithMetaData
Description copied from interface:TableMetaDataProvider
Initialize using the database meta-data provided.- Specified by:
initializeWithMetaData
in 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:TableMetaDataProvider
Initialize 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:
initializeWithTableColumnMetaData
in interfaceTableMetaDataProvider
- Parameters:
databaseMetaData
- used to retrieve database specific informationcatalogName
- name of catalog to use (ornull
if none)schemaName
- name of schema name to use (ornull
if none)tableName
- name of the table- Throws:
SQLException
- in case of initialization failure
-
tableNameToUse
Description copied from interface:TableMetaDataProvider
Get the table name formatted based on meta-data information. This could include altering the case.- Specified by:
tableNameToUse
in interfaceTableMetaDataProvider
-
catalogNameToUse
Description copied from interface:TableMetaDataProvider
Get the catalog name formatted based on meta-data information. This could include altering the case.- Specified by:
catalogNameToUse
in interfaceTableMetaDataProvider
-
schemaNameToUse
Description copied from interface:TableMetaDataProvider
Get the schema name formatted based on meta-data information. This could include altering the case.- Specified by:
schemaNameToUse
in interfaceTableMetaDataProvider
-
metaDataCatalogNameToUse
Description copied from interface:TableMetaDataProvider
Provide 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:
metaDataCatalogNameToUse
in interfaceTableMetaDataProvider
-
metaDataSchemaNameToUse
Description copied from interface:TableMetaDataProvider
Provide 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:
metaDataSchemaNameToUse
in interfaceTableMetaDataProvider
-
getDefaultSchema
Provide access to default schema for subclasses. -
getDatabaseVersion
Provide access to version info for subclasses.
-