|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.apache.cayenne.dba.JdbcAdapter
public class JdbcAdapter
A generic DbAdapter implementation. Can be used as a default adapter or as a superclass of a concrete adapter implementation.
| Field Summary | |
|---|---|
protected ExtendedTypeMap |
extendedTypes
|
protected PkGenerator |
pkGenerator
|
protected boolean |
supportsBatchUpdates
|
protected boolean |
supportsFkConstraints
|
protected boolean |
supportsGeneratedKeys
|
protected boolean |
supportsUniqueConstraints
|
protected TypesHandler |
typesHandler
|
| Constructor Summary | |
|---|---|
JdbcAdapter()
Creates new JdbcAdapter with a set of default parameters. |
|
| Method Summary | |
|---|---|
void |
bindParameter(java.sql.PreparedStatement statement,
java.lang.Object object,
int pos,
int sqlType,
int precision)
Binds an object value to PreparedStatement's numbered parameter. |
DbAttribute |
buildAttribute(java.lang.String name,
java.lang.String typeName,
int type,
int size,
int precision,
boolean allowNulls)
Creates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data). |
protected void |
configureExtendedTypes(ExtendedTypeMap map)
Installs appropriate ExtendedTypes as converters for passing values between JDBC and Java layers. |
DataNode |
createDataNode(java.lang.String name)
Deprecated. since 1.2 this method is not used as node behavior customization is done via SQLActionVisitor. |
java.lang.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. |
java.lang.String |
createTable(DbEntity entity)
Returns a SQL string that can be used to create database table corresponding to ent parameter. |
protected void |
createTableAppendColumn(java.lang.StringBuffer sqlBuffer,
DbAttribute column)
Appends SQL for column creation to CREATE TABLE buffer. |
protected void |
createTableAppendPKClause(java.lang.StringBuffer sqlBuffer,
DbEntity entity)
|
java.lang.String |
createUniqueConstraint(DbEntity source,
java.util.Collection columns)
Returns a DDL string to create a unique constraint over a set of columns. |
java.lang.String |
dropTable(DbEntity ent)
Returns a SQL string to drop a table corresponding to ent DbEntity. |
java.lang.String[] |
externalTypesForJdbcType(int type)
Returns an array of RDBMS types that can be used with JDBC type. |
java.net.URL |
findAdapterResource(java.lang.String name)
Locates and returns a named adapter resource. |
SQLAction |
getAction(Query query,
DataNode node)
Uses JdbcActionBuilder to create the right action. |
java.lang.String |
getBatchTerminator()
Returns default separator - a semicolon. |
ExtendedTypeMap |
getExtendedTypes()
Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer. |
PkGenerator |
getPkGenerator()
Returns primary key generator associated with this DbAdapter. |
QualifierTranslator |
getQualifierTranslator(QueryAssembler queryAssembler)
Creates and returns a default implementation of a qualifier translator. |
QueryTranslator |
getQueryTranslator(Query query)
Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions. |
protected java.lang.Class |
queryTranslatorClass(Query q)
Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions. |
void |
setPkGenerator(PkGenerator pkGenerator)
Sets new primary key generator. |
void |
setSupportsBatchUpdates(boolean flag)
|
void |
setSupportsFkConstraints(boolean flag)
|
void |
setSupportsGeneratedKeys(boolean flag)
|
void |
setSupportsUniqueConstraints(boolean flag)
|
boolean |
shouldRunBatchQuery(DataNode node,
java.sql.Connection con,
BatchQuery query,
OperationObserver delegate)
Deprecated. Since 1.2 this method is obsolete and is ignored across Cayenne. |
boolean |
supportsBatchUpdates()
Returns true if the target database supports batch updates. |
boolean |
supportsFkConstraints()
Returns true. |
boolean |
supportsGeneratedKeys()
Returns true if a target database supports key autogeneration. |
boolean |
supportsUniqueConstraints()
Returns true. |
java.lang.String |
tableTypeForTable()
Returns the name of the table type (as returned by DatabaseMetaData.getTableTypes) for a simple user table. |
java.lang.String |
tableTypeForView()
Returns the name of the table type (as returned by DatabaseMetaData.getTableTypes) for a view table. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected PkGenerator pkGenerator
protected TypesHandler typesHandler
protected ExtendedTypeMap extendedTypes
protected boolean supportsBatchUpdates
protected boolean supportsFkConstraints
protected boolean supportsUniqueConstraints
protected boolean supportsGeneratedKeys
| Constructor Detail |
|---|
public JdbcAdapter()
| Method Detail |
|---|
public java.lang.String getBatchTerminator()
getBatchTerminator in interface DbAdapterpublic java.net.URL findAdapterResource(java.lang.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)
protected PkGenerator createPkGenerator()
public PkGenerator getPkGenerator()
getPkGenerator in interface DbAdapterpublic void setPkGenerator(PkGenerator pkGenerator)
public QueryTranslator getQueryTranslator(Query query)
throws java.lang.Exception
DbAdapterquery parameter. Sets translator "query" and "adapter" property.
This factory method allows subclasses to specify their own translators that implement vendor-specific optimizations.
getQueryTranslator in interface DbAdapterjava.lang.Exceptionprotected java.lang.Class queryTranslatorClass(Query q)
q to SQL. Exists mainly for the benefit of subclasses that can
override this method providing their own translator.
public boolean supportsFkConstraints()
supportsFkConstraints in interface DbAdapterpublic void setSupportsFkConstraints(boolean flag)
public boolean supportsUniqueConstraints()
supportsUniqueConstraints in interface DbAdapterpublic void setSupportsUniqueConstraints(boolean flag)
public java.lang.String dropTable(DbEntity ent)
ent DbEntity.
dropTable in interface DbAdapterpublic java.lang.String createTable(DbEntity entity)
ent parameter.
createTable in interface DbAdapter
protected void createTableAppendPKClause(java.lang.StringBuffer sqlBuffer,
DbEntity entity)
protected void createTableAppendColumn(java.lang.StringBuffer sqlBuffer,
DbAttribute column)
public java.lang.String createUniqueConstraint(DbEntity source,
java.util.Collection columns)
createUniqueConstraint in interface DbAdapterpublic java.lang.String createFkConstraint(DbRelationship rel)
createFkConstraint in interface DbAdapterpublic java.lang.String[] externalTypesForJdbcType(int type)
DbAdaptertype.
Valid JDBC types are defined in java.sql.Types.
externalTypesForJdbcType in interface DbAdapterpublic ExtendedTypeMap getExtendedTypes()
DbAdapter
getExtendedTypes in interface DbAdapterExtendedType
public DbAttribute buildAttribute(java.lang.String name,
java.lang.String typeName,
int type,
int size,
int precision,
boolean allowNulls)
DbAdapter
buildAttribute 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)precision - database column precision (ignored if less than zero)allowNulls - database column nullable parameterpublic java.lang.String tableTypeForTable()
DbAdapterDatabaseMetaData.getTableTypes) for a simple user table.
tableTypeForTable in interface DbAdapterpublic java.lang.String tableTypeForView()
DbAdapterDatabaseMetaData.getTableTypes) for a view table.
tableTypeForView in interface DbAdapterpublic QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler)
getQualifierTranslator in interface DbAdapterpublic DataNode createDataNode(java.lang.String name)
createDataNode in interface DbAdapter
public SQLAction getAction(Query query,
DataNode node)
getAction in interface DbAdapter
public void bindParameter(java.sql.PreparedStatement statement,
java.lang.Object object,
int pos,
int sqlType,
int precision)
throws java.sql.SQLException,
java.lang.Exception
DbAdapter
bindParameter in interface DbAdapterjava.sql.SQLException
java.lang.Exceptionpublic boolean supportsBatchUpdates()
DbAdaptertrue if the target database supports batch updates.
supportsBatchUpdates in interface DbAdapterpublic void setSupportsBatchUpdates(boolean flag)
public boolean supportsGeneratedKeys()
DbAdapter
supportsGeneratedKeys in interface DbAdapterpublic void setSupportsGeneratedKeys(boolean flag)
public boolean shouldRunBatchQuery(DataNode node,
java.sql.Connection con,
BatchQuery query,
OperationObserver delegate)
throws java.sql.SQLException,
java.lang.Exception
true, letting DataNode to handle the query.
shouldRunBatchQuery in interface DbAdapterjava.sql.SQLException
java.lang.Exception
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||