|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface DbAdapter
Defines API needed to handle differences between various databases accessed via JDBC. Implementing classed are intended to be pluggable database-specific adapters. DbAdapter-based architecture is introduced to solve the following problems:
Method Summary | |
---|---|
void |
bindParameter(PreparedStatement statement,
Object object,
int pos,
int sqlType,
int scale)
Binds an object value to PreparedStatement's numbered 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 to entity parameter. |
void |
createTableAppendColumn(StringBuffer sqlBuffer,
DbAttribute column)
Append the column type part of a "create table" to the given StringBuffer |
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. |
String |
dropTable(DbEntity entity)
Deprecated. since 3.0 Cayenne supports 'dropTableStatements' to allow multiple statements to be executed when dropping the table. |
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 JDBC type . |
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. |
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(boolean needQuotes)
|
MergerFactory |
mergerFactory()
|
boolean |
supportsBatchUpdates()
Returns true if the target database supports batch updates. |
boolean |
supportsFkConstraints()
Deprecated. since 3.0 - almost all DB's support FK's now and also this flag is less relevant for Cayenne now. |
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 by DatabaseMetaData.getTableTypes ) for a simple user table. |
String |
tableTypeForView()
Returns the name of the table type (as returned by DatabaseMetaData.getTableTypes ) for a view table. |
Method Detail |
---|
String getBatchTerminator()
QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler)
SQLAction getAction(Query query, DataNode node)
boolean supportsFkConstraints()
boolean supportsUniqueConstraints()
boolean supportsGeneratedKeys()
boolean supportsBatchUpdates()
true
if the target database supports batch updates.
String dropTable(DbEntity entity)
Collection<String> dropTableStatements(DbEntity table)
String createTable(DbEntity entity)
entity
parameter.
String createUniqueConstraint(DbEntity source, Collection<DbAttribute> columns)
String createFkConstraint(DbRelationship rel)
String[] externalTypesForJdbcType(int type)
type
. Valid
JDBC types are defined in java.sql.Types.
ExtendedTypeMap getExtendedTypes()
PkGenerator getPkGenerator()
DbAttribute buildAttribute(String name, String typeName, int type, int size, int scale, boolean allowNulls)
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 parametervoid bindParameter(PreparedStatement statement, Object object, int pos, int sqlType, int scale) throws SQLException, Exception
SQLException
Exception
String tableTypeForTable()
DatabaseMetaData.getTableTypes
) for a simple user table.
String tableTypeForView()
DatabaseMetaData.getTableTypes
) for a view table.
MergerFactory mergerFactory()
void createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)
StringBuffer
sqlBuffer
- the StringBuffer
to append the column type tocolumn
- the DbAttribute
defining the column to append type forQuotingStrategy getQuotingStrategy(boolean needQuotes)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |