public class GenericTableMetaDataProvider extends Object implements TableMetaDataProvider
TableMetaDataProvider that should provide
enough features for all supported databases.| Modifier and Type | Field and Description |
|---|---|
protected static Log |
logger
Logger available to subclasses
|
| Modifier | Constructor and Description |
|---|---|
protected |
GenericTableMetaDataProvider(DatabaseMetaData databaseMetaData)
Constructor used to initialize with provided database metadata.
|
| Modifier and Type | Method and Description |
|---|---|
String |
catalogNameToUse(String catalogName)
Get the catalog name formatted based on metadata information.
|
protected String |
getDatabaseVersion()
Provide access to version info for subclasses.
|
protected String |
getDefaultSchema()
Provide access to default schema for subclasses.
|
protected NativeJdbcExtractor |
getNativeJdbcExtractor() |
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 metadata 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 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 |
isStoresLowerCaseIdentifiers() |
boolean |
isStoresUpperCaseIdentifiers() |
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 |
setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) |
void |
setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) |
void |
setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
Set the
NativeJdbcExtractor to use to retrieve the native connection if necessary |
void |
setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) |
void |
setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) |
String |
tableNameToUse(String tableName)
Get the table name formatted based on metadata information.
|
protected static final Log logger
protected GenericTableMetaDataProvider(DatabaseMetaData databaseMetaData) throws SQLException
databaseMetaData - metadata to be usedSQLExceptionpublic void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers)
public boolean isStoresUpperCaseIdentifiers()
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers)
public boolean isStoresLowerCaseIdentifiers()
public boolean isTableColumnMetaDataUsed()
TableMetaDataProviderisTableColumnMetaDataUsed in interface TableMetaDataProviderpublic List<TableParameterMetaData> getTableParameterMetaData()
TableMetaDataProvidergetTableParameterMetaData in interface TableMetaDataProviderTableParameterMetaDatapublic boolean isGetGeneratedKeysSupported()
TableMetaDataProviderDatabaseMetaData.supportsGetGeneratedKeys()?isGetGeneratedKeysSupported in interface TableMetaDataProviderpublic boolean isGetGeneratedKeysSimulated()
TableMetaDataProviderisGetGeneratedKeysSimulated in interface TableMetaDataProviderTableMetaDataProvider.isGetGeneratedKeysSupported()public String getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName)
TableMetaDataProvidergetSimpleQueryForGetGeneratedKey in interface TableMetaDataProviderpublic void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported)
public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported)
public boolean isGeneratedKeysColumnNameArraySupported()
TableMetaDataProviderConnection.createStruct(String, Object[])isGeneratedKeysColumnNameArraySupported in interface TableMetaDataProviderpublic void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
TableMetaDataProviderNativeJdbcExtractor to use to retrieve the native connection if necessarysetNativeJdbcExtractor in interface TableMetaDataProviderprotected NativeJdbcExtractor getNativeJdbcExtractor()
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException
TableMetaDataProviderinitializeWithMetaData in interface TableMetaDataProviderdatabaseMetaData - used to retrieve database specific informationSQLException - in case of initialization failurepublic void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName, String schemaName, String tableName) throws SQLException
TableMetaDataProviderinitializeWithTableColumnMetaData in interface TableMetaDataProviderdatabaseMetaData - used to retrieve database specific informationcatalogName - name of catalog to use (or null if none)schemaName - name of schema name to use (or null if none)tableName - name of the tableSQLException - in case of initialization failurepublic String tableNameToUse(String tableName)
TableMetaDataProvidertableNameToUse in interface TableMetaDataProviderpublic String catalogNameToUse(String catalogName)
TableMetaDataProvidercatalogNameToUse in interface TableMetaDataProviderpublic String schemaNameToUse(String schemaName)
TableMetaDataProviderschemaNameToUse in interface TableMetaDataProviderpublic String metaDataCatalogNameToUse(String catalogName)
TableMetaDataProvidermetaDataCatalogNameToUse in interface TableMetaDataProviderpublic String metaDataSchemaNameToUse(String schemaName)
TableMetaDataProvidermetaDataSchemaNameToUse in interface TableMetaDataProviderprotected String getDefaultSchema()
protected String getDatabaseVersion()