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 meta-data. This is intended for internal use by the Simple JDBC classes.- Since:
- 2.5
- Author:
- Thomas Risberg
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description String
catalogNameToUse(String catalogName)
Get the catalog name formatted based on meta-data information.String
getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName)
Get the simple query to retrieve a generated key.List<TableParameterMetaData>
getTableParameterMetaData()
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
isGeneratedKeysColumnNameArraySupported()
Does this database support a column name String array for retrieving generated keys:Connection.createStruct(String, Object[])
?boolean
isGetGeneratedKeysSimulated()
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
isGetGeneratedKeysSupported()
Does this database support the JDBC 3.0 feature of retrieving 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 meta-data information.void
setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
Set theNativeJdbcExtractor
to use to retrieve the native connection if necessaryString
tableNameToUse(String tableName)
Get the table name formatted based on meta-data information.
Method Detail
initializeWithMetaData
void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException
Initialize using the database meta-data provided.- Parameters:
databaseMetaData
- used to retrieve database specific information- Throws:
SQLException
- in case of initialization failure
initializeWithTableColumnMetaData
void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName, String schemaName, String tableName) throws SQLException
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.- 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
String tableNameToUse(String tableName)
Get the table name formatted based on meta-data information. This could include altering the case.
catalogNameToUse
String catalogNameToUse(String catalogName)
Get the catalog name formatted based on meta-data information. This could include altering the case.
schemaNameToUse
String schemaNameToUse(String schemaName)
Get the schema name formatted based on meta-data information. This could include altering the case.
metaDataCatalogNameToUse
String metaDataCatalogNameToUse(String catalogName)
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.
metaDataSchemaNameToUse
String metaDataSchemaNameToUse(String schemaName)
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.
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 retrieving generated keys:DatabaseMetaData.supportsGetGeneratedKeys()
?
isGetGeneratedKeysSimulated
boolean isGetGeneratedKeysSimulated()
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?- See Also:
isGetGeneratedKeysSupported()
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 retrieving generated keys:Connection.createStruct(String, Object[])
?
getTableParameterMetaData
List<TableParameterMetaData> getTableParameterMetaData()
Get the table parameter meta-data that is currently used.- Returns:
- List of
TableParameterMetaData
setNativeJdbcExtractor
void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
Set theNativeJdbcExtractor
to use to retrieve the native connection if necessary