public class JdbcAdapter extends Object implements DbAdapter
| Modifier and Type | Field and Description |
|---|---|
protected BatchTranslatorFactory |
batchQueryBuilderFactory
Deprecated.
since 4.0 BatchQueryBuilderfactory is attached to the DataNode.
|
protected boolean |
caseInsensitiveCollations |
protected EJBQLTranslatorFactory |
ejbqlTranslatorFactory |
protected ExtendedTypeMap |
extendedTypes |
protected JdbcEventLogger |
logger |
protected QuotingStrategy |
quotingStrategy |
protected ResourceLocator |
resourceLocator |
protected boolean |
supportsBatchUpdates |
protected boolean |
supportsGeneratedKeys |
protected boolean |
supportsUniqueConstraints |
protected TypesHandler |
typesHandler |
| Constructor and Description |
|---|
JdbcAdapter(RuntimeProperties runtimeProperties,
List<ExtendedType> defaultExtendedTypes,
List<ExtendedType> userExtendedTypes,
List<ExtendedTypeFactory> extendedTypeFactories,
ResourceLocator resourceLocator,
ValueObjectTypeRegistry valueObjectTypeRegistry)
Creates new JdbcAdapter with a set of default parameters.
|
| Modifier and Type | Method and Description |
|---|---|
void |
bindParameter(PreparedStatement statement,
ParameterBinding binding)
Binds an object value to PreparedStatement's parameter.
|
DbAttribute |
buildAttribute(String name,
String typeName,
int type,
int size,
int scale,
boolean allowNulls)
Creates and returns a DbAttribute based on supplied parameters (usually
obtained from database meta data).
|
protected void |
configureExtendedTypes(ExtendedTypeMap map)
Called from
initExtendedTypes(List, List, List, ValueObjectTypeRegistry) to load
adapter-specific types into the ExtendedTypeMap right after the default
types are loaded, but before the DI overrides are. |
protected EJBQLTranslatorFactory |
createEJBQLTranslatorFactory()
Creates and returns an
EJBQLTranslatorFactory used to generate
visitors for EJBQL to SQL translations. |
String |
createFkConstraint(DbRelationship rel)
Returns a SQL string that can be used to create a foreign key constraint
for the relationship.
|
protected PkGenerator |
createPkGenerator()
Creates and returns a primary key generator.
|
protected QuotingStrategy |
createQuotingStrategy() |
String |
createTable(DbEntity entity)
Returns a SQL string that can be used to create database table
corresponding to
ent parameter. |
void |
createTableAppendColumn(StringBuffer sqlBuffer,
DbAttribute column)
Appends SQL for column creation to CREATE TABLE buffer.
|
protected void |
createTableAppendPKClause(StringBuffer sqlBuffer,
DbEntity entity) |
String |
createUniqueConstraint(DbEntity source,
Collection<DbAttribute> columns)
Returns a DDL string to create a unique constraint over a set of columns.
|
Collection<String> |
dropTableStatements(DbEntity table)
Returns a collection of SQL statements needed to drop a database table.
|
String[] |
externalTypesForJdbcType(int type)
Returns an array of RDBMS types that can be used with JDBC
type. |
protected URL |
findResource(String name)
Locates and returns a named adapter resource.
|
SQLAction |
getAction(Query query,
DataNode node)
Uses JdbcActionBuilder to create the right action.
|
BatchTranslatorFactory |
getBatchQueryBuilderFactory()
Deprecated.
since 4.0 BatchQueryBuilderfactory is attached to the
DataNode.
|
String |
getBatchTerminator()
Returns default separator - a semicolon.
|
EJBQLTranslatorFactory |
getEjbqlTranslatorFactory()
Returns a translator factory for EJBQL to SQL translation.
|
ExtendedTypeMap |
getExtendedTypes()
Returns a map of ExtendedTypes that is used to translate values between
Java and JDBC layer.
|
JdbcEventLogger |
getJdbcEventLogger() |
PkGenerator |
getPkGenerator()
Returns primary key generator associated with this DbAdapter.
|
QualifierTranslator |
getQualifierTranslator(QueryAssembler queryAssembler)
Creates and returns a default implementation of a qualifier translator.
|
QuotingStrategy |
getQuotingStrategy()
Returns SQL identifier quoting strategy object
|
QuotingStrategy |
getQuotingStrategy(boolean needQuotes)
Deprecated.
since 4.0 use
getQuotingStrategy(). |
SelectTranslator |
getSelectTranslator(SelectQuery<?> query,
EntityResolver entityResolver)
Returns a SelectTranslator that works with the adapter target database.
|
static String |
getType(DbAdapter adapter,
DbAttribute column) |
protected void |
initExtendedTypes(List<ExtendedType> defaultExtendedTypes,
List<ExtendedType> userExtendedTypes,
List<ExtendedTypeFactory> extendedTypeFactories,
ValueObjectTypeRegistry valueObjectTypeRegistry) |
void |
setBatchQueryBuilderFactory(BatchTranslatorFactory batchQueryBuilderFactory)
Deprecated.
since 4.0 BatchQueryBuilderfactory is attached to the
DataNode.
|
void |
setEjbqlTranslatorFactory(EJBQLTranslatorFactory ejbqlTranslatorFactory)
Sets a translator factory for EJBQL to SQL translation.
|
void |
setPkGenerator(PkGenerator pkGenerator)
Sets new primary key generator.
|
void |
setSupportsBatchUpdates(boolean flag) |
void |
setSupportsGeneratedKeys(boolean flag) |
void |
setSupportsUniqueConstraints(boolean flag) |
static String |
sizeAndPrecision(DbAdapter adapter,
DbAttribute column) |
boolean |
supportsBatchUpdates()
Returns
true if the target database supports batch updates. |
boolean |
supportsCatalogsOnReverseEngineering()
Returns true.
|
boolean |
supportsGeneratedKeys()
Returns true if a target database supports key autogeneration.
|
boolean |
supportsUniqueConstraints()
Returns true.
|
String |
tableTypeForTable()
Returns the name of the table type (as returned by
DatabaseMetaData.getTableTypes) for a simple user table. |
String |
tableTypeForView()
Returns the name of the table type (as returned by
DatabaseMetaData.getTableTypes) for a view table. |
boolean |
typeSupportsLength(int type)
Returns true if supplied type can have a length attribute as a part of
column definition
|
DbAdapter |
unwrap()
Simply returns this, as JdbcAdapter is not a wrapper.
|
protected QuotingStrategy quotingStrategy
protected TypesHandler typesHandler
protected ExtendedTypeMap extendedTypes
protected boolean supportsBatchUpdates
protected boolean supportsUniqueConstraints
protected boolean supportsGeneratedKeys
protected EJBQLTranslatorFactory ejbqlTranslatorFactory
protected ResourceLocator resourceLocator
protected boolean caseInsensitiveCollations
protected BatchTranslatorFactory batchQueryBuilderFactory
protected JdbcEventLogger logger
public JdbcAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry)
public String getBatchTerminator()
getBatchTerminator in interface DbAdapterpublic JdbcEventLogger getJdbcEventLogger()
protected URL findResource(String name)
This implementation is based on the premise that each adapter is located in its own Java package and all resources are in the same package as well. Resource lookup is recursive, so that if DbAdapter is a subclass of another adapter, parent adapter package is searched as a failover.
protected void configureExtendedTypes(ExtendedTypeMap map)
initExtendedTypes(List, List, List, ValueObjectTypeRegistry) to load
adapter-specific types into the ExtendedTypeMap right after the default
types are loaded, but before the DI overrides are. This method has
specific implementations in JdbcAdapter subclasses.protected void initExtendedTypes(List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ValueObjectTypeRegistry valueObjectTypeRegistry)
protected PkGenerator createPkGenerator()
protected EJBQLTranslatorFactory createEJBQLTranslatorFactory()
EJBQLTranslatorFactory used to generate
visitors for EJBQL to SQL translations. This method should be overriden
by subclasses that need to customize EJBQL generation.public PkGenerator getPkGenerator()
getPkGenerator in interface DbAdapterpublic void setPkGenerator(PkGenerator pkGenerator)
public boolean supportsUniqueConstraints()
supportsUniqueConstraints in interface DbAdapterpublic boolean supportsCatalogsOnReverseEngineering()
supportsCatalogsOnReverseEngineering in interface DbAdapterpublic void setSupportsUniqueConstraints(boolean flag)
public boolean typeSupportsLength(int type)
typeSupportsLength in interface DbAdapterpublic Collection<String> dropTableStatements(DbEntity table)
DbAdapterdropTableStatements in interface DbAdapterpublic String createTable(DbEntity entity)
ent parameter.createTable in interface DbAdapterprotected void createTableAppendPKClause(StringBuffer sqlBuffer, DbEntity entity)
public void createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)
createTableAppendColumn in interface DbAdaptersqlBuffer - the StringBuffer to append the column type tocolumn - the DbAttribute defining the column to append type forpublic static String sizeAndPrecision(DbAdapter adapter, DbAttribute column)
public static String getType(DbAdapter adapter, DbAttribute column)
public String createUniqueConstraint(DbEntity source, Collection<DbAttribute> columns)
createUniqueConstraint in interface DbAdapterpublic String createFkConstraint(DbRelationship rel)
createFkConstraint in interface DbAdapterpublic String[] externalTypesForJdbcType(int type)
DbAdaptertype. Valid JDBC types are defined in java.sql.Types.externalTypesForJdbcType in interface DbAdapterpublic ExtendedTypeMap getExtendedTypes()
DbAdaptergetExtendedTypes in interface DbAdapterpublic DbAttribute buildAttribute(String name, String typeName, int type, int size, int scale, boolean allowNulls)
DbAdapterbuildAttribute in interface DbAdaptername - database column nametypeName - database specific type name, may be used as a hint to
determine the right JDBC type.type - JDBC column typesize - database column size (ignored if less than zero)scale - database column scale, i.e. the number of decimal digits
(ignored if less than zero)allowNulls - database column nullable parameterpublic String tableTypeForTable()
DbAdapterDatabaseMetaData.getTableTypes) for a simple user table.tableTypeForTable in interface DbAdapterpublic String tableTypeForView()
DbAdapterDatabaseMetaData.getTableTypes) for a view table.tableTypeForView in interface DbAdapterpublic QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler)
getQualifierTranslator in interface DbAdapterpublic SQLAction getAction(Query query, DataNode node)
public SelectTranslator getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver)
DbAdaptergetSelectTranslator in interface DbAdapterpublic void bindParameter(PreparedStatement statement, ParameterBinding binding) throws SQLException, Exception
DbAdapterbindParameter in interface DbAdapterSQLExceptionExceptionpublic boolean supportsBatchUpdates()
DbAdaptertrue if the target database supports batch updates.supportsBatchUpdates in interface DbAdapterpublic void setSupportsBatchUpdates(boolean flag)
public boolean supportsGeneratedKeys()
DbAdaptersupportsGeneratedKeys in interface DbAdapterpublic void setSupportsGeneratedKeys(boolean flag)
public EJBQLTranslatorFactory getEjbqlTranslatorFactory()
createEJBQLTranslatorFactory(), and can be changed later by
calling setEjbqlTranslatorFactory(EJBQLTranslatorFactory).getEjbqlTranslatorFactory in interface DbAdapterpublic void setEjbqlTranslatorFactory(EJBQLTranslatorFactory ejbqlTranslatorFactory)
createEJBQLTranslatorFactory(), so users would only override it
if they need to customize EJBQL translation.protected QuotingStrategy createQuotingStrategy()
@Deprecated public QuotingStrategy getQuotingStrategy(boolean needQuotes)
getQuotingStrategy().getQuotingStrategy in interface DbAdapterpublic QuotingStrategy getQuotingStrategy()
DbAdaptergetQuotingStrategy in interface DbAdapter@Deprecated public BatchTranslatorFactory getBatchQueryBuilderFactory()
@Deprecated public void setBatchQueryBuilderFactory(BatchTranslatorFactory batchQueryBuilderFactory)
Copyright © 2001–2023 Apache Cayenne. All rights reserved.