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

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
 void bindParameter(java.sql.PreparedStatement statement, java.lang.Object object, int pos, int sqlType, int scale)
          Binds an object value to PreparedStatement's numbered parameter.
 DbAttribute buildAttribute(java.lang.String name, java.lang.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).
 java.lang.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.
 java.lang.String createTable(DbEntity entity)
          Returns a SQL string that can be used to create database table corresponding to entity parameter.
 void createTableAppendColumn(java.lang.StringBuffer sqlBuffer, DbAttribute column)
          Append the column type part of a "create table" to the given StringBuffer
 java.lang.String createUniqueConstraint(DbEntity source, java.util.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.
 java.util.Collection<java.lang.String> dropTableStatements(DbEntity table)
          Returns a collection of SQL statements needed to drop a database table.
 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)
           
 QuotingStrategy getQuotingStrategy(boolean needQuotes)
           
 MergerFactory mergerFactory()
           
 boolean supportsBatchUpdates()
          Returns true if the target database supports batch updates.
 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

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

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.


dropTableStatements

java.util.Collection<java.lang.String> dropTableStatements(DbEntity table)
Returns a collection of SQL statements needed to drop a database table.

Since:
3.0

createTable

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


createUniqueConstraint

java.lang.String createUniqueConstraint(DbEntity source,
                                        java.util.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

java.lang.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

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.


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 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(java.sql.PreparedStatement statement,
                   java.lang.Object object,
                   int pos,
                   int sqlType,
                   int scale)
                   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.


mergerFactory

MergerFactory mergerFactory()
Since:
3.0

createTableAppendColumn

void createTableAppendColumn(java.lang.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-2012 Apache Cayenne. All Rights Reserved.