Package 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
Modifier and Type Method Description voidbindParameter(PreparedStatement statement, ParameterBinding parameterBinding)Binds an object value to PreparedStatement's parameter.DbAttributebuildAttribute(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).StringcreateFkConstraint(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.StringcreateTable(DbEntity entity)Returns a SQL string that can be used to create database table corresponding toentityparameter.voidcreateTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)Append the column type part of a "create table" to the givenStringBufferStringcreateUniqueConstraint(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 JDBCtype.SQLActiongetAction(Query query, DataNode node)Returns an instance of SQLAction that should handle the query.StringgetBatchTerminator()Returns a String used to terminate a batch in command-line tools.EJBQLTranslatorFactorygetEjbqlTranslatorFactory()Returns a translator factory for EJBQL to SQL translation.ExtendedTypeMapgetExtendedTypes()Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.PkGeneratorgetPkGenerator()Returns primary key generator associated with this DbAdapter.QualifierTranslatorgetQualifierTranslator(QueryAssembler queryAssembler)QuotingStrategygetQuotingStrategy()Returns SQL identifier quoting strategy objectSelectTranslatorgetSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver)Returns a SelectTranslator that works with the adapter target database.List<String>getSystemCatalogs()List<String>getSystemSchemas()voidsetPkGenerator(PkGenerator pkGenerator)Set custom PK generator associated with this DbAdapter.booleansupportsBatchUpdates()Returnstrueif the target database supports batch updates.booleansupportsCatalogsOnReverseEngineering()Returns true if a target database supports catalogs on reverse engineering.booleansupportsGeneratedKeys()Returns true if a target database supports key autogeneration.booleansupportsUniqueConstraints()Returns true if a target database supports UNIQUE constraints.StringtableTypeForTable()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.StringtableTypeForView()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.booleantypeSupportsLength(int type)DbAdapterunwrap()Allows the users to get access to the adapter decorated by a given adapter.
-
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
Returns a SelectTranslator that works with the adapter target database.- Since:
- 4.0
-
getQualifierTranslator
-
getAction
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
-
supportsBatchUpdates
boolean supportsBatchUpdates()Returnstrueif the target database supports batch updates. -
typeSupportsLength
boolean typeSupportsLength(int type) -
dropTableStatements
Returns a collection of SQL statements needed to drop a database table.- Since:
- 3.0
-
createTable
Returns a SQL string that can be used to create database table corresponding toentityparameter. -
createUniqueConstraint
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
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
Returns an array of RDBMS types that can be used with JDBCtype. 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
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 nametypeName- database specific type name, may be used as a hint to determine the right JDBC type.type- JDBC column typesize- 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, ExceptionBinds an object value to PreparedStatement's parameter.- Throws:
SQLExceptionException
-
tableTypeForTable
String tableTypeForTable()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table. -
tableTypeForView
String tableTypeForView()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table. -
createTableAppendColumn
Append the column type part of a "create table" to the givenStringBuffer- Parameters:
sqlBuffer- theStringBufferto append the column type tocolumn- theDbAttributedefining 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
- Returns:
- list of system catalogs
- Since:
- 4.1
-
getSystemSchemas
- Returns:
- list of system schemas
- Since:
- 4.1
-