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
Interface DbAdapter

All Known Implementing Classes:
  AutoAdapter, DB2Adapter, DerbyAdapter, FrontBaseAdapter, H2Adapter, HSQLDBAdapter, HSQLDBNoSchemaAdapter, IngresAdapter, JdbcAdapter, MySQLAdapter, OpenBaseAdapter, Oracle8Adapter, OracleAdapter, PostgresAdapter, SQLiteAdapter, SQLServerAdapter, SybaseAdapter

    public interface DbAdapter

Defines API needed to handle differences between various databases accessed via JDBC. Implementing classed are intended to be pluggable database-specific adapters. DbAdapter-based architecture is introduced to solve the following problems:

- Make Cayenne code independent from SQL syntax differences between different RDBMS.
- Allow for vendor-specific tuning of JDBC access.

Method Summary
`void` | `bindParameter(PreparedStatement statement, Object object, int pos, int sqlType, int scale)` Binds an object value to PreparedStatement's numbered 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).
`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 Cayenne supports 'dropTableStatements' to allow multiple statements to be executed when dropping the table.
`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.
`String` | `getBatchTerminator()` Returns a String used to terminate a batch in command-line tools.
`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)`
`QuotingStrategy` | `getQuotingStrategy(boolean needQuotes)`
`MergerFactory` | `mergerFactory()`
`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.

Method Detail

### getBatchTerminator

    String getBatchTerminator()

  Returns a String used to terminate a batch in command-line tools. E.g. ";" on Oracle or "go" on Sybase.

  Since:
    1.0.4

### getQualifierTranslator

    QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler)

### getAction

    SQLAction getAction(Query query,
                        DataNode node)

  Returns an instance of SQLAction that should handle the query.

  Since:
    1.2

### supportsFkConstraints

    boolean supportsFkConstraints()

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

  Returns true if a target database supports FK constraints.

### supportsUniqueConstraints

    boolean supportsUniqueConstraints()

  Returns true if a target database supports UNIQUE constraints.

  Since:
    1.1

### supportsGeneratedKeys

    boolean supportsGeneratedKeys()

  Returns true if a target database supports key autogeneration. This feature also requires JDBC3-compliant driver.

  Since:
    1.2

### supportsBatchUpdates

    boolean supportsBatchUpdates()

  Returns `true` if the target database supports batch updates.

### dropTable

    String dropTable(DbEntity entity)

  Deprecated. since 3.0 Cayenne supports 'dropTableStatements' to allow multiple statements to be executed when dropping the table.

  Returns a SQL string that can be used to drop a database table corresponding to entity parameter.

### dropTableStatements

    Collection<String> dropTableStatements(DbEntity table)

  Returns a collection of SQL statements needed to drop a database table.

  Since:
    3.0

### createTable

    String createTable(DbEntity entity)

  Returns a SQL string that can be used to create database table corresponding to `entity` parameter.

### createUniqueConstraint

    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.

  Since:
    1.1

### createFkConstraint

    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.

### externalTypesForJdbcType

    String[] externalTypesForJdbcType(int type)

  Returns an array of RDBMS types that can be used with JDBC `type`. Valid JDBC types are defined in java.sql.Types.

### getExtendedTypes

    ExtendedTypeMap getExtendedTypes()

  Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.

### getPkGenerator

    PkGenerator getPkGenerator()

  Returns primary key generator associated with this DbAdapter.

### buildAttribute

    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).

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

### bindParameter

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

  Binds an object value to PreparedStatement's numbered parameter.

  Throws:
    `SQLException`
    `Exception`

### tableTypeForTable

    String tableTypeForTable()

  Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a simple user table.

### tableTypeForView

    String tableTypeForView()

  Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a view table.

### mergerFactory

    MergerFactory mergerFactory()

  Since:
    3.0

### createTableAppendColumn

    void createTableAppendColumn(StringBuffer sqlBuffer,
                                 DbAttribute column)

  Append the column type part of a "create table" to the given `StringBuffer`

  Parameters:
    `sqlBuffer` - the `StringBuffer` to append the column type to
    `column` - the `DbAttribute` defining the column to append type for
  Since:
    3.0

### getQuotingStrategy

    QuotingStrategy getQuotingStrategy(boolean needQuotes)

  Since:
    3.0

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-2011 Apache Cayenne. All Rights Reserved.