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 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) getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver) Deprecated.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) unwrap()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
@Deprecated SelectTranslator getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver) Deprecated.since 4.2 asSelectQueryis deprecated.getSelectTranslator(FluentSelect, EntityResolver)replaces this method.Returns a SelectTranslator that works with the adapter target database.- Since:
- 4.0
-
getSelectTranslator
- Since:
- 4.2
-
getSqlTreeProcessor
SQLTreeProcessor getSqlTreeProcessor()- Returns:
SQLTreeProcessorthat can adjust SQL tree to specific database flavour- Since:
- 4.2
-
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
-
supportsGeneratedKeysForBatchInserts
default boolean supportsGeneratedKeysForBatchInserts()Returns true if a target database supports key autogeneration in a batch insert.- Since:
- 4.2
- See Also:
-
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, Exception Binds 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
-
SelectQueryis deprecated.