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 Details

    • 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:
    • 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