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:


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


Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.