public class GenericTableMetaDataProvider extends Object implements TableMetaDataProvider
TableMetaDataProvider
interface
which 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 meta-data.
|
Modifier and Type | Method and Description |
---|---|
String |
catalogNameToUse(String catalogName)
Get the catalog name formatted based on meta-data information.
|
protected String |
getDatabaseVersion()
Provide access to version info for subclasses.
|
protected String |
getDefaultSchema()
Provide access to default schema for subclasses.
|
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 |
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 meta-data information.
|
void |
setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) |
void |
setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) |
void |
setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) |
void |
setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) |
String |
tableNameToUse(String tableName)
Get the table name formatted based on meta-data information.
|
protected static final Log logger
protected GenericTableMetaDataProvider(DatabaseMetaData databaseMetaData) throws SQLException
databaseMetaData
- meta-data to be usedSQLException
public void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers)
public boolean isStoresUpperCaseIdentifiers()
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers)
public boolean isStoresLowerCaseIdentifiers()
public boolean isTableColumnMetaDataUsed()
TableMetaDataProvider
isTableColumnMetaDataUsed
in interface TableMetaDataProvider
public List<TableParameterMetaData> getTableParameterMetaData()
TableMetaDataProvider
getTableParameterMetaData
in interface TableMetaDataProvider
TableParameterMetaData
public boolean isGetGeneratedKeysSupported()
TableMetaDataProvider
DatabaseMetaData.supportsGetGeneratedKeys()
?isGetGeneratedKeysSupported
in interface TableMetaDataProvider
public boolean isGetGeneratedKeysSimulated()
TableMetaDataProvider
isGetGeneratedKeysSimulated
in interface TableMetaDataProvider
TableMetaDataProvider.isGetGeneratedKeysSupported()
@Nullable public String getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName)
TableMetaDataProvider
getSimpleQueryForGetGeneratedKey
in interface TableMetaDataProvider
public void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported)
public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported)
public boolean isGeneratedKeysColumnNameArraySupported()
TableMetaDataProvider
Connection.createStruct(String, Object[])
?isGeneratedKeysColumnNameArraySupported
in interface TableMetaDataProvider
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException
TableMetaDataProvider
initializeWithMetaData
in interface TableMetaDataProvider
databaseMetaData
- used to retrieve database specific informationSQLException
- in case of initialization failurepublic void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, @Nullable String catalogName, @Nullable String schemaName, @Nullable String tableName) throws SQLException
TableMetaDataProvider
initializeWithTableColumnMetaData
in interface TableMetaDataProvider
databaseMetaData
- 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 failure@Nullable public String tableNameToUse(@Nullable String tableName)
TableMetaDataProvider
tableNameToUse
in interface TableMetaDataProvider
@Nullable public String catalogNameToUse(@Nullable String catalogName)
TableMetaDataProvider
catalogNameToUse
in interface TableMetaDataProvider
@Nullable public String schemaNameToUse(@Nullable String schemaName)
TableMetaDataProvider
schemaNameToUse
in interface TableMetaDataProvider
@Nullable public String metaDataCatalogNameToUse(@Nullable String catalogName)
TableMetaDataProvider
metaDataCatalogNameToUse
in interface TableMetaDataProvider
@Nullable public String metaDataSchemaNameToUse(@Nullable String schemaName)
TableMetaDataProvider
metaDataSchemaNameToUse
in interface TableMetaDataProvider
@Nullable protected String getDefaultSchema()