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.
|
protected NativeJdbcExtractor |
getNativeJdbcExtractor() |
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 |
setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
Set the
NativeJdbcExtractor to use to retrieve the native connection if necessary |
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()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 setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)
TableMetaDataProviderNativeJdbcExtractor to use to retrieve the native connection if necessarysetNativeJdbcExtractor in interface TableMetaDataProviderprotected NativeJdbcExtractor getNativeJdbcExtractor()
public 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,
java.lang.String catalogName,
java.lang.String schemaName,
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 failurepublic java.lang.String tableNameToUse(java.lang.String tableName)
TableMetaDataProvidertableNameToUse in interface TableMetaDataProviderpublic java.lang.String catalogNameToUse(java.lang.String catalogName)
TableMetaDataProvidercatalogNameToUse in interface TableMetaDataProviderpublic java.lang.String schemaNameToUse(java.lang.String schemaName)
TableMetaDataProviderschemaNameToUse in interface TableMetaDataProviderpublic java.lang.String metaDataCatalogNameToUse(java.lang.String catalogName)
TableMetaDataProvidermetaDataCatalogNameToUse in interface TableMetaDataProviderpublic java.lang.String metaDataSchemaNameToUse(java.lang.String schemaName)
TableMetaDataProvidermetaDataSchemaNameToUse in interface TableMetaDataProviderprotected java.lang.String getDefaultSchema()
protected java.lang.String getDatabaseVersion()