org.apache.cayenne.dba
Interface DbAdapter

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

Author:
Andrus Adamchik

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 ent parameter.
 String createUniqueConstraint(DbEntity source, Collection columns)
          Returns a DDL string to create a unique constraint over a set of columns.
 String dropTable(DbEntity entity)
          Returns a SQL string that can be used to drop a database table corresponding to ent parameter.
 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)
           
 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)
Returns a SQL string that can be used to drop a database table corresponding to ent parameter.


createTable

String createTable(DbEntity entity)
Returns a SQL string that can be used to create database table corresponding to ent parameter.


createUniqueConstraint

String createUniqueConstraint(DbEntity source,
                              Collection columns)
Returns a DDL string to create a unique constraint over a set of columns.

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.

See Also:
ExtendedType

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.



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