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
All Methods Instance Methods Abstract Methods Deprecated Methods 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 objectQuotingStrategy
getQuotingStrategy(boolean needQuotes)
Deprecated.since 4.0 usegetQuotingStrategy()
.SelectTranslator
getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver)
Returns a SelectTranslator that works with the adapter target database.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 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()
Returnstrue
if 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 toentity
parameter.
-
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.
-
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
void createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)
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
@Deprecated QuotingStrategy getQuotingStrategy(boolean needQuotes)
Deprecated.since 4.0 usegetQuotingStrategy()
.- 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
-
-