Overview | Package | Class | 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, FirebirdAdapter, FrontBaseAdapter, HSQLDBAdapter, HSQLDBNoSchemaAdapter, IngresAdapter, JdbcAdapter, MySQLAdapter, OpenBaseAdapter, Oracle8Adapter, OracleAdapter, PostgresAdapter, 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.

Author:
  Andrei Adamchik

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 not used as node behavior customization is done via SQLActionVisitor.
`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.
`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)`
`QueryTranslator` | `getQueryTranslator(Query query)` Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions.
`boolean` | `shouldRunBatchQuery(DataNode node, java.sql.Connection con, BatchQuery query, OperationObserver delegate)` Deprecated. Since 1.2 this method is obsolete and is ignored across Cayenne.
`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.

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

### createDataNode

    DataNode createDataNode(java.lang.String name)

  Deprecated. since 1.2 this method is not used as node behavior customization is done via SQLActionVisitor.

  Creates an returns a named instance of a DataNode.

### getQueryTranslator

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

  Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions.

  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.

  Throws:
    `java.lang.Exception`

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

  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

    java.lang.String dropTable(DbEntity entity)

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

### createTable

    java.lang.String createTable(DbEntity entity)

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

### createUniqueConstraint

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

  Returns a DDL string to create a unique constraint over a set of columns.

  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.

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

  See Also:
    `ExtendedType`

### 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 precision,
                               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)
    `precision` - database column precision (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 precision)
                       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.

### shouldRunBatchQuery

    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 obsolete and is ignored across Cayenne.

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