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

## org.apache.cayenne.dba
Class AutoAdapter

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

All Implemented Interfaces:
  DbAdapter

    public class AutoAdapter

extends 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

Field Summary
`protected DbAdapterFactory` | `adapterFactory`
`protected DataSource` | `dataSource`
`protected PkGenerator` | `pkGenerator`

Constructor Summary
`AutoAdapter(DataSource dataSource)` Creates an AutoAdapter that can detect adapters known to Cayenne.
`AutoAdapter(DbAdapterFactory adapterFactory, DataSource dataSource)` Creates an AutoAdapter with specified adapter factory and DataSource.

Method Summary
`static void` | `addFactory(DbAdapterFactory factory)` Allows application code to add a sniffer to detect a custom adapter.
`void` | `bindParameter(PreparedStatement statement, Object object, int pos, int sqlType, int precision)` Binds an object value to PreparedStatement's numbered parameter.
`DbAttribute` | `buildAttribute(String name, 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 DbAdapterFactory` | `createDefaultFactory()` Called from constructor to initialize factory in case no factory was specified by the object creator.
`String` | `createFkConstraint(DbRelationship rel)` Returns a SQL string that can be used to create a foreign key constraint for the relationship, or null if foreign keys are not supported.
`String` | `createTable(DbEntity entity)` Returns a SQL string that can be used to create database table corresponding to `entity` parameter.
`void` | `createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)` Append the column type part of a "create table" to the given `StringBuffer`
`String` | `createUniqueConstraint(DbEntity source, Collection<DbAttribute> columns)` Returns a DDL string to create a unique constraint over a set of columns, or null if the unique constraints are not supported.
`String` | `dropTable(DbEntity entity)` Deprecated. since 3.0 as the decorated method is deprecated.
`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`.
`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.
`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)`
`protected DbAdapter` | `loadAdapter()` Opens a connection, retrieves JDBC metadata and attempts to guess adapter form it.
`MergerFactory` | `mergerFactory()`
`void` | `setPkGenerator(PkGenerator pkGenerator)` Sets a PK generator override.
`boolean` | `supportsBatchUpdates()` Returns `true` if the target database supports batch updates.
`boolean` | `supportsFkConstraints()` Deprecated. since 3.0 - almost all DB's support FK's now and also this flag is less relevant for Cayenne now.
`boolean` | `supportsGeneratedKeys()` Returns true if a target database supports key autogeneration.
`boolean` | `supportsUniqueConstraints()` Returns true if a target database supports UNIQUE constraints.
`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.

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 DataSource dataSource

### pkGenerator

    protected PkGenerator pkGenerator

Constructor Detail

### AutoAdapter

    public AutoAdapter(DataSource dataSource)

  Creates an AutoAdapter that can detect adapters known to Cayenne.

### AutoAdapter

    public AutoAdapter(DbAdapterFactory adapterFactory,
                       DataSource dataSource)

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

Method Detail

### addFactory

    public static void addFactory(DbAdapterFactory factory)

  Allows application code to add a sniffer to detect a custom adapter.

  Since:
    3.0

### 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 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`

### 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()

  Deprecated. since 3.0 - almost all DB's support FK's now and also this flag is less relevant for Cayenne now.

  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 String dropTable(DbEntity entity)

  Deprecated. since 3.0 as the decorated method is deprecated.

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

  Specified by:
    `dropTable` in interface `DbAdapter`

### dropTableStatements

    public Collection<String> dropTableStatements(DbEntity table)

  Description copied from interface: `DbAdapter`
  Returns a collection of SQL statements needed to drop a database table.

  Specified by:
    `dropTableStatements` in interface `DbAdapter`

### createTable

    public String createTable(DbEntity entity)

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

  Specified by:
    `createTable` in interface `DbAdapter`

### createUniqueConstraint

    public String createUniqueConstraint(DbEntity source,
                                         Collection<DbAttribute> columns)

  Description copied from interface: `DbAdapter`
  Returns a DDL string to create a unique constraint over a set of columns, or null if the unique constraints are not supported.

  Specified by:
    `createUniqueConstraint` in interface `DbAdapter`

### createFkConstraint

    public 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, or null if foreign keys are not supported.

  Specified by:
    `createFkConstraint` in interface `DbAdapter`

### externalTypesForJdbcType

    public 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`

### 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(String name,
                                      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 scale, i.e. the number of decimal digits (ignored if less than zero)
    `allowNulls` - database column nullable parameter

### bindParameter

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

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

  Specified by:
    `bindParameter` in interface `DbAdapter`
  Throws:
    `SQLException`
    `Exception`

### tableTypeForTable

    public 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 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`

### mergerFactory

    public MergerFactory mergerFactory()

  Specified by:
    `mergerFactory` in interface `DbAdapter`

### createTableAppendColumn

    public void createTableAppendColumn(StringBuffer sqlBuffer,
                                        DbAttribute column)

  Description copied from interface: `DbAdapter`
  Append the column type part of a "create table" to the given `StringBuffer`

  Specified by:
    `createTableAppendColumn` in interface `DbAdapter`
  Parameters:
    `sqlBuffer` - the `StringBuffer` to append the column type to
    `column` - the `DbAttribute` defining the column to append type for

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

Copyright © 2001-2008 Apache Cayenne. All Rights Reserved.