Package org.apache.cayenne.dba
Interface DbAdapter
- All Known Implementing Classes:
- AutoAdapter,- DB2Adapter,- DerbyAdapter,- FirebirdAdapter,- FrontBaseAdapter,- H2Adapter,- HSQLDBAdapter,- HSQLDBNoSchemaAdapter,- IngresAdapter,- JdbcAdapter,- MySQLAdapter,- 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 SummaryModifier and TypeMethodDescriptionvoidbindParameter(PreparedStatement statement, ParameterBinding parameterBinding) Binds an object value to PreparedStatement's parameter.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).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.createTable(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 givenStringBuffercreateUniqueConstraint(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.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.Returns an instance of SQLAction that should handle the query.Returns a String used to terminate a batch in command-line tools.Returns a translator factory for EJBQL to SQL translation.Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.Returns primary key generator associated with this DbAdapter.Returns SQL identifier quoting strategy objectgetSelectTranslator(FluentSelect<?, ?> query, EntityResolver entityResolver) voidsetPkGenerator(PkGenerator pkGenerator) Set custom PK generator associated with this DbAdapter.booleanReturnstrueif the target database supports batch updates.booleanReturns true if a target database supports catalogs on reverse engineering.booleanReturns true if a target database supports key autogeneration.default booleanReturns true if a target database supports key autogeneration in a batch insert.booleanReturns true if a target database supports UNIQUE constraints.Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.booleantypeSupportsLength(int type) booleantypeSupportsScale(int type) Returns true if supplied type can have a scale attribute as a part of column definition.unwrap()Allows the users to get access to the adapter decorated by a given adapter.
- 
Method Details- 
getBatchTerminatorString 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- Since:
- 4.2
 
- 
getSqlTreeProcessorSQLTreeProcessor getSqlTreeProcessor()- Returns:
- SQLTreeProcessorthat can adjust SQL tree to specific database flavour
- Since:
- 4.2
 
- 
getActionReturns an instance of SQLAction that should handle the query.- Since:
- 1.2
 
- 
supportsUniqueConstraintsboolean supportsUniqueConstraints()Returns true if a target database supports UNIQUE constraints.- Since:
- 1.1
 
- 
supportsCatalogsOnReverseEngineeringboolean supportsCatalogsOnReverseEngineering()Returns true if a target database supports catalogs on reverse engineering.- Since:
- 4.0
 
- 
supportsGeneratedKeysboolean supportsGeneratedKeys()Returns true if a target database supports key autogeneration. This feature also requires JDBC3-compliant driver.- Since:
- 1.2
 
- 
supportsGeneratedKeysForBatchInsertsdefault boolean supportsGeneratedKeysForBatchInserts()Returns true if a target database supports key autogeneration in a batch insert.- Since:
- 4.2
- See Also:
 
- 
supportsBatchUpdatesboolean supportsBatchUpdates()Returnstrueif the target database supports batch updates.
- 
typeSupportsLengthboolean typeSupportsLength(int type) 
- 
typeSupportsScaleboolean typeSupportsScale(int type) Returns true if supplied type can have a scale attribute as a part of column definition.- Parameters:
- type- sql type code
- Returns:
- trueif a given type supports scale
- Since:
- 5.0
 
- 
dropTableStatementsReturns a collection of SQL statements needed to drop a database table.- Since:
- 3.0
 
- 
createTableReturns a SQL string that can be used to create database table corresponding toentityparameter.
- 
createUniqueConstraintReturns 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
 
- 
createFkConstraintReturns a SQL string that can be used to create a foreign key constraint for the relationship, or null if foreign keys are not supported.
- 
externalTypesForJdbcTypeReturns an array of RDBMS types that can be used with JDBCtype. Valid JDBC types are defined in java.sql.Types.
- 
getExtendedTypesExtendedTypeMap getExtendedTypes()Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.
- 
getPkGeneratorPkGenerator getPkGenerator()Returns primary key generator associated with this DbAdapter.
- 
setPkGeneratorSet custom PK generator associated with this DbAdapter.- Parameters:
- pkGenerator- to set
- Since:
- 4.1
 
- 
buildAttributeDbAttribute 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
 
- 
bindParametervoid bindParameter(PreparedStatement statement, ParameterBinding parameterBinding) throws SQLException, Exception Binds an object value to PreparedStatement's parameter.- Throws:
- SQLException
- Exception
 
- 
tableTypeForTableString tableTypeForTable()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.
- 
tableTypeForViewString tableTypeForView()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.
- 
createTableAppendColumnAppend the column type part of a "create table" to the givenStringBuffer- Parameters:
- sqlBuffer- the- StringBufferto append the column type to
- column- the- DbAttributedefining the column to append type for
- Since:
- 3.0
 
- 
getQuotingStrategyQuotingStrategy getQuotingStrategy()Returns SQL identifier quoting strategy object- Since:
- 4.0
 
- 
unwrapDbAdapter unwrap()Allows the users to get access to the adapter decorated by a given adapter.- Since:
- 4.0
 
- 
getEjbqlTranslatorFactoryEJBQLTranslatorFactory 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
 
 
-