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

A Cayenne extension point that abstracts the differences between specifics of JDBC interfaces to various databases. Cayenne already ships with a number of built-in adapters for most common databases and users can provide their own custom adapters.

Method Summary
`void` | `bindParameter(java.sql.PreparedStatement statement, java.lang.Object object, int pos, int sqlType, int scale)` Binds an object value to PreparedStatement's numbered parameter.
`DbAttribute` | `buildAttribute(java.lang.String name, java.lang.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).
`java.lang.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.
`java.lang.String` | `createTable(DbEntity entity)` Returns a SQL string that can be used to create database table corresponding to `entity` parameter.
`void` | `createTableAppendColumn(java.lang.StringBuffer sqlBuffer, DbAttribute column)` Append the column type part of a "create table" to the given `StringBuffer`
`java.lang.String` | `createUniqueConstraint(DbEntity source, java.util.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.
`java.util.Collection<java.lang.String>` | `dropTableStatements(DbEntity table)` Returns a collection of SQL statements needed to drop a database table.
`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.
`java.lang.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` | `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.

Method Detail

### getBatchTerminator

    java.lang.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

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

### dropTableStatements

    java.util.Collection<java.lang.String> dropTableStatements(DbEntity table)

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

  Since:
    3.0

### createTable

    java.lang.String createTable(DbEntity entity)

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

### createUniqueConstraint

    java.lang.String createUniqueConstraint(DbEntity source,
                                            java.util.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

    java.lang.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

    java.lang.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(java.lang.String name,
                               java.lang.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(java.sql.PreparedStatement statement,
                       java.lang.Object object,
                       int pos,
                       int sqlType,
                       int scale)
                       throws java.sql.SQLException,
                              java.lang.Exception

  Binds an object value to PreparedStatement's numbered parameter.

  Throws:
    `java.sql.SQLException`
    `java.lang.Exception`

### tableTypeForTable

    java.lang.String tableTypeForTable()

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

### tableTypeForView

    java.lang.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(java.lang.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-2012 Apache Cayenne. All Rights Reserved.