org.apache.cayenne.dba

## Interface DbAdapter

- All Known Implementing Classes:
    AutoAdapter, DB2Adapter, DerbyAdapter, FirebirdAdapter, 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

    All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `bindParameter(PreparedStatement statement, ParameterBinding parameterBinding)` Binds an object value to PreparedStatement's 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.
    `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.
    `EJBQLTranslatorFactory` | `getEjbqlTranslatorFactory()` Returns a translator factory for EJBQL to SQL translation.
    `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.
    `QuotingStrategy` | `getQuotingStrategy()` Returns SQL identifier quoting strategy object
    `SelectTranslator` | `getSelectTranslator(FluentSelect<?> query, EntityResolver entityResolver)`
    `SelectTranslator` | `getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver)` Deprecated. since 4.2 as `SelectQuery` is deprecated. `getSelectTranslator(FluentSelect, EntityResolver)` replaces this method.
    `SQLTreeProcessor` | `getSqlTreeProcessor()`
    `List<String>` | `getSystemCatalogs()`
    `List<String>` | `getSystemSchemas()`
    `void` | `setPkGenerator(PkGenerator pkGenerator)` Set custom PK generator associated with this DbAdapter.
    `boolean` | `supportsBatchUpdates()` Returns `true` if the target database supports batch updates.
    `boolean` | `supportsCatalogsOnReverseEngineering()` Returns true if a target database supports catalogs on reverse engineering.
    `boolean` | `supportsGeneratedKeys()` Returns true if a target database supports key autogeneration.
    `default boolean` | `supportsGeneratedKeysForBatchInserts()` Returns true if a target database supports key autogeneration in a batch insert.
    `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.
    `boolean` | `typeSupportsLength(int type)`
    `DbAdapter` | `unwrap()` Allows the users to get access to the adapter decorated by a given adapter.

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

    - #### getSelectTranslator

          @Deprecated
          SelectTranslator getSelectTranslator(SelectQuery<?> query,
                                                            EntityResolver entityResolver)

      Deprecated. since 4.2 as `SelectQuery` is deprecated. `getSelectTranslator(FluentSelect, EntityResolver)` replaces this method.
      Returns a SelectTranslator that works with the adapter target database.
      Since:
        4.0

    - #### getSelectTranslator

          SelectTranslator getSelectTranslator(FluentSelect<?> query,
                                               EntityResolver entityResolver)

      Since:
        4.2

    - #### getSqlTreeProcessor

          SQLTreeProcessor getSqlTreeProcessor()

      Returns:
        `SQLTreeProcessor` that can adjust SQL tree to specific database flavour
      Since:
        4.2

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

    - #### supportsCatalogsOnReverseEngineering

          boolean supportsCatalogsOnReverseEngineering()

      Returns true if a target database supports catalogs on reverse engineering.
      Since:
        4.0

    - #### supportsGeneratedKeys

          boolean supportsGeneratedKeys()

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

    - #### supportsGeneratedKeysForBatchInserts

          default boolean supportsGeneratedKeysForBatchInserts()

      Returns true if a target database supports key autogeneration in a batch insert.
      Since:
        4.2
      See Also:
        `supportsGeneratedKeys()`

    - #### supportsBatchUpdates

          boolean supportsBatchUpdates()

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

    - #### typeSupportsLength

          boolean typeSupportsLength(int type)

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

    - #### setPkGenerator

          void setPkGenerator(PkGenerator pkGenerator)

      Set custom PK generator associated with this DbAdapter.
      Parameters:
        `pkGenerator` - to set
      Since:
        4.1

    - #### 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,
                             ParameterBinding parameterBinding)
                      throws SQLException,
                             Exception

      Binds an object value to PreparedStatement's 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.

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

      Returns SQL identifier quoting strategy object
      Since:
        4.0

    - #### unwrap

          DbAdapter unwrap()

      Allows the users to get access to the adapter decorated by a given adapter.
      Since:
        4.0

    - #### getEjbqlTranslatorFactory

          EJBQLTranslatorFactory getEjbqlTranslatorFactory()

      Returns a translator factory for EJBQL to SQL translation.
      Since:
        4.0

    - #### getSystemCatalogs

          List<String> getSystemCatalogs()

      Returns:
        list of system catalogs
      Since:
        4.1

    - #### getSystemSchemas

          List<String> getSystemSchemas()

      Returns:
        list of system schemas
      Since:
        4.1

Copyright © 2001–2021 Apache Cayenne. All rights reserved.