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 TypeMethodDescriptionvoid
bindParameter
(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 toentity
parameter.void
createTableAppendColumn
(StringBuffer sqlBuffer, DbAttribute column) Append the column type part of a "create table" to the givenStringBuffer
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.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.void
setPkGenerator
(PkGenerator pkGenerator) Set custom PK generator associated with this DbAdapter.boolean
Returnstrue
if the target database supports batch updates.boolean
Returns true if a target database supports catalogs on reverse engineering.boolean
Returns true if a target database supports key autogeneration.default boolean
Returns true if a target database supports key autogeneration in a batch insert.boolean
Returns 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.boolean
typeSupportsLength
(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 asSelectQuery
is 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:
SQLTreeProcessor
that 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()Returnstrue
if 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 toentity
parameter. -
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:
SQLException
Exception
-
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
- theStringBuffer
to append the column type tocolumn
- theDbAttribute
defining 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
-
SelectQuery
is deprecated.