|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.cayenne.dba.AutoAdapter
public class AutoAdapter
A DbAdapter that automatically detects the kind of database it is running on and instantiates an appropriate DB-specific adapter, delegating all subsequent method calls to this adapter.
Field Summary | |
---|---|
protected DbAdapterFactory |
adapterFactory
|
protected javax.sql.DataSource |
dataSource
|
protected PkGenerator |
pkGenerator
|
Constructor Summary | |
---|---|
AutoAdapter(javax.sql.DataSource dataSource)
Creates an AutoAdapter that can detect adapters known to Cayenne. |
|
AutoAdapter(DbAdapterFactory adapterFactory,
javax.sql.DataSource dataSource)
Creates an AutoAdapter with specified adapter factory and DataSource. |
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). |
DataNode |
createDataNode(java.lang.String name)
Deprecated. since 1.2 this method is deprecated in DbAdapter interface. |
protected DbAdapterFactory |
createDefaultFactory()
Called from constructor to initialize factory in case no factory was specified by the object creator. |
java.lang.String |
createFkConstraint(DbRelationship rel)
Returns a SQL string that can be used to create a foreign key constraint for the relationship. |
java.lang.String |
createTable(DbEntity entity)
Returns a SQL string that can be used to create database table corresponding to ent parameter. |
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 entity)
Returns a SQL string that can be used to drop a database table corresponding to ent parameter. |
java.lang.String[] |
externalTypesForJdbcType(int type)
Returns an array of RDBMS types that can be used with JDBC type . |
SQLAction |
getAction(Query query,
DataNode node)
Returns an instance of SQLAction that should handle the query. |
protected DbAdapter |
getAdapter()
Returns a proxied DbAdapter, lazily creating it on first invocation. |
java.lang.String |
getBatchTerminator()
Returns a String used to terminate a batch in command-line tools. |
static DbAdapterFactory |
getDefaultFactory()
Returns a DbAdapterFactory configured to detect all databases officially supported by Cayenne. |
ExtendedTypeMap |
getExtendedTypes()
Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer. |
PkGenerator |
getPkGenerator()
Returns a primary key generator. |
QualifierTranslator |
getQualifierTranslator(QueryAssembler queryAssembler)
|
QueryTranslator |
getQueryTranslator(Query query)
Deprecated. since 1.2 this method is deprecated in DbAdapter interface. |
protected DbAdapter |
loadAdapter()
Opens a connection, retrieves JDBC metadata and attempts to guess adapter form it. |
void |
setPkGenerator(PkGenerator pkGenerator)
Sets a PK generator override. |
boolean |
shouldRunBatchQuery(DataNode node,
java.sql.Connection con,
BatchQuery query,
OperationObserver delegate)
Deprecated. since 1.2 this method is deprecated in DbAdapter interface. |
boolean |
supportsBatchUpdates()
Returns true if the target database supports batch updates. |
boolean |
supportsFkConstraints()
Returns true if a target database supports FK constraints. |
boolean |
supportsGeneratedKeys()
Returns true if a target database supports key autogeneration. |
boolean |
supportsUniqueConstraints()
Returns true if a target database supports UNIQUE constraints. |
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 DbAdapterFactory adapterFactory
protected javax.sql.DataSource dataSource
protected PkGenerator pkGenerator
Constructor Detail |
---|
public AutoAdapter(javax.sql.DataSource dataSource)
public AutoAdapter(DbAdapterFactory adapterFactory, javax.sql.DataSource dataSource)
Method Detail |
---|
public static DbAdapterFactory getDefaultFactory()
protected DbAdapterFactory createDefaultFactory()
protected DbAdapter getAdapter()
protected DbAdapter loadAdapter()
public java.lang.String getBatchTerminator()
DbAdapter
getBatchTerminator
in interface DbAdapter
public DataNode createDataNode(java.lang.String name)
DbAdapter
createDataNode
in interface DbAdapter
public QueryTranslator getQueryTranslator(Query query) throws java.lang.Exception
DbAdapter
query
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 DbAdapter
java.lang.Exception
public QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler)
getQualifierTranslator
in interface DbAdapter
public SQLAction getAction(Query query, DataNode node)
DbAdapter
getAction
in interface DbAdapter
public boolean supportsFkConstraints()
DbAdapter
supportsFkConstraints
in interface DbAdapter
public boolean supportsUniqueConstraints()
DbAdapter
supportsUniqueConstraints
in interface DbAdapter
public boolean supportsGeneratedKeys()
DbAdapter
supportsGeneratedKeys
in interface DbAdapter
public boolean supportsBatchUpdates()
DbAdapter
true
if the target database supports batch updates.
supportsBatchUpdates
in interface DbAdapter
public java.lang.String dropTable(DbEntity entity)
DbAdapter
ent
parameter.
dropTable
in interface DbAdapter
public java.lang.String createTable(DbEntity entity)
DbAdapter
ent
parameter.
createTable
in interface DbAdapter
public java.lang.String createUniqueConstraint(DbEntity source, java.util.Collection columns)
DbAdapter
createUniqueConstraint
in interface DbAdapter
public java.lang.String createFkConstraint(DbRelationship rel)
DbAdapter
createFkConstraint
in interface DbAdapter
public java.lang.String[] externalTypesForJdbcType(int type)
DbAdapter
type
.
Valid JDBC types are defined in java.sql.Types.
externalTypesForJdbcType
in interface DbAdapter
public ExtendedTypeMap getExtendedTypes()
DbAdapter
getExtendedTypes
in interface DbAdapter
ExtendedType
public PkGenerator getPkGenerator()
getPkGenerator
in interface DbAdapter
public void setPkGenerator(PkGenerator pkGenerator)
public DbAttribute buildAttribute(java.lang.String name, java.lang.String typeName, int type, int size, int precision, boolean allowNulls)
DbAdapter
buildAttribute
in interface DbAdapter
name
- 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 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 DbAdapter
java.sql.SQLException
java.lang.Exception
public java.lang.String tableTypeForTable()
DbAdapter
DatabaseMetaData.getTableTypes
) for a simple user table.
tableTypeForTable
in interface DbAdapter
public java.lang.String tableTypeForView()
DbAdapter
DatabaseMetaData.getTableTypes
) for a view table.
tableTypeForView
in interface DbAdapter
public boolean shouldRunBatchQuery(DataNode node, java.sql.Connection con, BatchQuery query, OperationObserver delegate) throws java.sql.SQLException, java.lang.Exception
shouldRunBatchQuery
in interface DbAdapter
java.sql.SQLException
java.lang.Exception
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |