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 DbAdapterA 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
All Methods Instance Methods Abstract Methods 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 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
-
getSelectTranslator
SelectTranslator getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver)
Returns a SelectTranslator that works with the adapter target database.- Since:
- 4.0
-
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
-
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
Collection<String> dropTableStatements(DbEntity table)
Returns a collection of SQL statements needed to drop a database table.- Since:
- 3.0
-
createTable
String createTable(DbEntity entity)
Returns a SQL string that can be used to create database table corresponding toentityparameter.
-
createUniqueConstraint
String createUniqueConstraint(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.- 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 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
void setPkGenerator(PkGenerator pkGenerator)
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
void createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)
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
-
-