Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.objectstyle.cayenne.dba
Class AutoAdapter

    java.lang.Object
      org.objectstyle.cayenne.dba.AutoAdapter

All Implemented Interfaces:
  DbAdapter

    public class AutoAdapter

extends java.lang.Object
implements DbAdapter

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.

Since:
  1.2
Author:
  Andrus Adamchik

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

### adapterFactory

    protected DbAdapterFactory adapterFactory

### dataSource

    protected javax.sql.DataSource dataSource

### pkGenerator

    protected PkGenerator pkGenerator

Constructor Detail

### AutoAdapter

    public AutoAdapter(javax.sql.DataSource dataSource)

  Creates an AutoAdapter that can detect adapters known to Cayenne.

### AutoAdapter

    public AutoAdapter(DbAdapterFactory adapterFactory,
                       javax.sql.DataSource dataSource)

  Creates an AutoAdapter with specified adapter factory and DataSource. If adapterFactory is null, default factory is used.

Method Detail

### getDefaultFactory

    public static DbAdapterFactory getDefaultFactory()

  Returns a DbAdapterFactory configured to detect all databases officially supported by Cayenne.

### createDefaultFactory

    protected DbAdapterFactory createDefaultFactory()

  Called from constructor to initialize factory in case no factory was specified by the object creator.

### getAdapter

    protected DbAdapter getAdapter()

  Returns a proxied DbAdapter, lazily creating it on first invocation.

### loadAdapter

    protected DbAdapter loadAdapter()

  Opens a connection, retrieves JDBC metadata and attempts to guess adapter form it.

### getBatchTerminator

    public java.lang.String getBatchTerminator()

  Description copied from interface: `DbAdapter`
  Returns a String used to terminate a batch in command-line tools. E.g. ";" on Oracle or "go" on Sybase.

  Specified by:
    `getBatchTerminator` in interface `DbAdapter`

### createDataNode

    public DataNode createDataNode(java.lang.String name)

  Deprecated. since 1.2 this method is deprecated in DbAdapter interface.

  Description copied from interface: `DbAdapter`
  Creates an returns a named instance of a DataNode.

  Specified by:
    `createDataNode` in interface `DbAdapter`

### getQueryTranslator

    public QueryTranslator getQueryTranslator(Query query)
                                       throws java.lang.Exception

  Deprecated. since 1.2 this method is deprecated in DbAdapter interface.

  Description copied from interface: `DbAdapter`
  Creates and returns a QueryTranslator appropriate for the specified `query` parameter. Sets translator "query" and "adapter" property.

  This factory method allows subclasses to specify their own translators that implement vendor-specific optimizations.

  Specified by:
    `getQueryTranslator` in interface `DbAdapter`
  Throws:
    `java.lang.Exception`

### getQualifierTranslator

    public QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler)

  Specified by:
    `getQualifierTranslator` in interface `DbAdapter`

### getAction

    public SQLAction getAction(Query query,
                               DataNode node)

  Description copied from interface: `DbAdapter`
  Returns an instance of SQLAction that should handle the query.

  Specified by:
    `getAction` in interface `DbAdapter`

### supportsFkConstraints

    public boolean supportsFkConstraints()

  Description copied from interface: `DbAdapter`
  Returns true if a target database supports FK constraints.

  Specified by:
    `supportsFkConstraints` in interface `DbAdapter`

### supportsUniqueConstraints

    public boolean supportsUniqueConstraints()

  Description copied from interface: `DbAdapter`
  Returns true if a target database supports UNIQUE constraints.

  Specified by:
    `supportsUniqueConstraints` in interface `DbAdapter`

### supportsGeneratedKeys

    public boolean supportsGeneratedKeys()

  Description copied from interface: `DbAdapter`
  Returns true if a target database supports key autogeneration. This feature also requires JDBC3-compliant driver.

  Specified by:
    `supportsGeneratedKeys` in interface `DbAdapter`

### supportsBatchUpdates

    public boolean supportsBatchUpdates()

  Description copied from interface: `DbAdapter`
  Returns `true` if the target database supports batch updates.

  Specified by:
    `supportsBatchUpdates` in interface `DbAdapter`

### dropTable

    public java.lang.String dropTable(DbEntity entity)

  Description copied from interface: `DbAdapter`
  Returns a SQL string that can be used to drop a database table corresponding to `ent` parameter.

  Specified by:
    `dropTable` in interface `DbAdapter`

### createTable

    public java.lang.String createTable(DbEntity entity)

  Description copied from interface: `DbAdapter`
  Returns a SQL string that can be used to create database table corresponding to `ent` parameter.

  Specified by:
    `createTable` in interface `DbAdapter`

### createUniqueConstraint

    public java.lang.String createUniqueConstraint(DbEntity source,
                                                   java.util.Collection columns)

  Description copied from interface: `DbAdapter`
  Returns a DDL string to create a unique constraint over a set of columns.

  Specified by:
    `createUniqueConstraint` in interface `DbAdapter`

### createFkConstraint

    public java.lang.String createFkConstraint(DbRelationship rel)

  Description copied from interface: `DbAdapter`
  Returns a SQL string that can be used to create a foreign key constraint for the relationship.

  Specified by:
    `createFkConstraint` in interface `DbAdapter`

### externalTypesForJdbcType

    public java.lang.String[] externalTypesForJdbcType(int type)

  Description copied from interface: `DbAdapter`
  Returns an array of RDBMS types that can be used with JDBC `type`. Valid JDBC types are defined in java.sql.Types.

  Specified by:
    `externalTypesForJdbcType` in interface `DbAdapter`

### getExtendedTypes

    public ExtendedTypeMap getExtendedTypes()

  Description copied from interface: `DbAdapter`
  Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.

  Specified by:
    `getExtendedTypes` in interface `DbAdapter`
  See Also:
    `ExtendedType`

### getPkGenerator

    public PkGenerator getPkGenerator()

  Returns a primary key generator.

  Specified by:
    `getPkGenerator` in interface `DbAdapter`

### setPkGenerator

    public void setPkGenerator(PkGenerator pkGenerator)

  Sets a PK generator override. If set to non-null value, such PK generator will be used instead of the one provided by wrapped adapter.

### buildAttribute

    public DbAttribute buildAttribute(java.lang.String name,
                                      java.lang.String typeName,
                                      int type,
                                      int size,
                                      int precision,
                                      boolean allowNulls)

  Description copied from interface: `DbAdapter`
  Creates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).

  Specified by:
    `buildAttribute` in interface `DbAdapter`
  Parameters:
    `name` - database column name
    `typeName` - database specific type name, may be used as a hint to determine the right JDBC type.
    `type` - JDBC column type
    `size` - database column size (ignored if less than zero)
    `precision` - database column precision (ignored if less than zero)
    `allowNulls` - database column nullable parameter

### bindParameter

    public void bindParameter(java.sql.PreparedStatement statement,
                              java.lang.Object object,
                              int pos,
                              int sqlType,
                              int precision)
                       throws java.sql.SQLException,
                              java.lang.Exception

  Description copied from interface: `DbAdapter`
  Binds an object value to PreparedStatement's numbered parameter.

  Specified by:
    `bindParameter` in interface `DbAdapter`
  Throws:
    `java.sql.SQLException`
    `java.lang.Exception`

### tableTypeForTable

    public java.lang.String tableTypeForTable()

  Description copied from interface: `DbAdapter`
  Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a simple user table.

  Specified by:
    `tableTypeForTable` in interface `DbAdapter`

### tableTypeForView

    public java.lang.String tableTypeForView()

  Description copied from interface: `DbAdapter`
  Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a view table.

  Specified by:
    `tableTypeForView` in interface `DbAdapter`

### shouldRunBatchQuery

    public boolean shouldRunBatchQuery(DataNode node,
                                       java.sql.Connection con,
                                       BatchQuery query,
                                       OperationObserver delegate)
                                throws java.sql.SQLException,
                                       java.lang.Exception

  Deprecated. since 1.2 this method is deprecated in DbAdapter interface.

  Specified by:
    `shouldRunBatchQuery` in interface `DbAdapter`
  Throws:
    `java.sql.SQLException`
    `java.lang.Exception`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2006 ObjectStyle.org All Rights Reserved.