public class GenericTableMetaDataProvider extends java.lang.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(java.sql.DatabaseMetaData databaseMetaData)
Constructor used to initialize with provided database meta-data.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
catalogNameToUse(java.lang.String catalogName)
Get the catalog name formatted based on meta-data information.
|
protected java.lang.String |
getDatabaseVersion()
Provide access to version info for subclasses.
|
protected java.lang.String |
getDefaultSchema()
Provide access to default schema for subclasses.
|
java.lang.String |
getSimpleQueryForGetGeneratedKey(java.lang.String tableName,
java.lang.String keyColumnName)
Get the simple query to retrieve a generated key.
|
java.util.List<TableParameterMetaData> |
getTableParameterMetaData()
Get the table parameter meta-data that is currently used.
|
void |
initializeWithMetaData(java.sql.DatabaseMetaData databaseMetaData)
Initialize using the database meta-data provided.
|
void |
initializeWithTableColumnMetaData(java.sql.DatabaseMetaData databaseMetaData,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.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?
|
java.lang.String |
metaDataCatalogNameToUse(java.lang.String catalogName)
Provide any modification of the catalog name passed in to match the meta-data currently used.
|
java.lang.String |
metaDataSchemaNameToUse(java.lang.String schemaName)
Provide any modification of the schema name passed in to match the meta-data currently used.
|
java.lang.String |
schemaNameToUse(java.lang.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) |
java.lang.String |
tableNameToUse(java.lang.String tableName)
Get the table name formatted based on meta-data information.
|
protected static final Log logger
protected GenericTableMetaDataProvider(java.sql.DatabaseMetaData databaseMetaData)
throws java.sql.SQLException
databaseMetaData - meta-data to be usedjava.sql.SQLExceptionpublic void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers)
public boolean isStoresUpperCaseIdentifiers()
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers)
public boolean isStoresLowerCaseIdentifiers()
public boolean isTableColumnMetaDataUsed()
TableMetaDataProviderisTableColumnMetaDataUsed in interface TableMetaDataProviderpublic java.util.List<TableParameterMetaData> getTableParameterMetaData()
TableMetaDataProvidergetTableParameterMetaData in interface TableMetaDataProviderTableParameterMetaDatapublic boolean isGetGeneratedKeysSupported()
TableMetaDataProviderDatabaseMetaData.supportsGetGeneratedKeys()?isGetGeneratedKeysSupported in interface TableMetaDataProviderpublic boolean isGetGeneratedKeysSimulated()
TableMetaDataProviderisGetGeneratedKeysSimulated in interface TableMetaDataProviderTableMetaDataProvider.isGetGeneratedKeysSupported()@Nullable public java.lang.String getSimpleQueryForGetGeneratedKey(java.lang.String tableName, java.lang.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 initializeWithMetaData(java.sql.DatabaseMetaData databaseMetaData)
throws java.sql.SQLException
TableMetaDataProviderinitializeWithMetaData in interface TableMetaDataProviderdatabaseMetaData - used to retrieve database specific informationjava.sql.SQLException - in case of initialization failurepublic void initializeWithTableColumnMetaData(java.sql.DatabaseMetaData databaseMetaData,
@Nullable
java.lang.String catalogName,
@Nullable
java.lang.String schemaName,
@Nullable
java.lang.String tableName)
throws java.sql.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 tablejava.sql.SQLException - in case of initialization failure@Nullable public java.lang.String tableNameToUse(@Nullable java.lang.String tableName)
TableMetaDataProvidertableNameToUse in interface TableMetaDataProvider@Nullable public java.lang.String catalogNameToUse(@Nullable java.lang.String catalogName)
TableMetaDataProvidercatalogNameToUse in interface TableMetaDataProvider@Nullable public java.lang.String schemaNameToUse(@Nullable java.lang.String schemaName)
TableMetaDataProviderschemaNameToUse in interface TableMetaDataProvider@Nullable public java.lang.String metaDataCatalogNameToUse(@Nullable java.lang.String catalogName)
TableMetaDataProvidermetaDataCatalogNameToUse in interface TableMetaDataProvider@Nullable public java.lang.String metaDataSchemaNameToUse(@Nullable java.lang.String schemaName)
TableMetaDataProvidermetaDataSchemaNameToUse in interface TableMetaDataProvider@Nullable protected java.lang.String getDefaultSchema()
@Nullable protected java.lang.String getDatabaseVersion()