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 void
bindParameter(PreparedStatement statement, ParameterBinding parameterBinding)
Binds an object value to PreparedStatement's parameter.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).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.String
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
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.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
.SQLAction
getAction(Query query, DataNode node)
Returns an instance of SQLAction that should handle the query.String
getBatchTerminator()
Returns a String used to terminate a batch in command-line tools.EJBQLTranslatorFactory
getEjbqlTranslatorFactory()
Returns a translator factory for EJBQL to SQL translation.ExtendedTypeMap
getExtendedTypes()
Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.PkGenerator
getPkGenerator()
Returns primary key generator associated with this DbAdapter.QualifierTranslator
getQualifierTranslator(QueryAssembler queryAssembler)
QuotingStrategy
getQuotingStrategy()
Returns SQL identifier quoting strategy objectSelectTranslator
getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver)
Returns a SelectTranslator that works with the adapter target database.List<String>
getSystemCatalogs()
List<String>
getSystemSchemas()
void
setPkGenerator(PkGenerator pkGenerator)
Set custom PK generator associated with this DbAdapter.boolean
supportsBatchUpdates()
Returnstrue
if the target database supports batch updates.boolean
supportsCatalogsOnReverseEngineering()
Returns true if a target database supports catalogs on reverse engineering.boolean
supportsGeneratedKeys()
Returns true if a target database supports key autogeneration.boolean
supportsUniqueConstraints()
Returns true if a target database supports UNIQUE constraints.String
tableTypeForTable()
Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes
) for a simple user table.String
tableTypeForView()
Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes
) for a view table.boolean
typeSupportsLength(int type)
DbAdapter
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
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()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, ExceptionBinds 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
-