Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cayenne.dba
Class JdbcAdapter

    java.lang.Object
      org.apache.cayenne.dba.JdbcAdapter

All Implemented Interfaces:
  DbAdapter

Direct Known Subclasses:
  DB2Adapter, DerbyAdapter, FrontBaseAdapter, HSQLDBAdapter, IngresAdapter, MySQLAdapter, OpenBaseAdapter, OracleAdapter, PostgresAdapter, SybaseAdapter

    public class JdbcAdapter

extends java.lang.Object
implements DbAdapter

A generic DbAdapter implementation. Can be used as a default adapter or as a superclass of a concrete adapter implementation.

Author:
  Andrei Adamchik

Field Summary
`protected ExtendedTypeMap` | `extendedTypes`
`protected PkGenerator` | `pkGenerator`
`protected boolean` | `supportsBatchUpdates`
`protected boolean` | `supportsFkConstraints`
`protected boolean` | `supportsGeneratedKeys`
`protected boolean` | `supportsUniqueConstraints`
`protected TypesHandler` | `typesHandler`

Constructor Summary
`JdbcAdapter()` Creates new JdbcAdapter with a set of default parameters.

Method Summary
`void` | `bindParameter(java.sql.PreparedStatement statement, java.lang.Object object, int pos, int sqlType, int precision)` Binds an object value to PreparedStatement's numbered parameter.
`DbAttribute` | `buildAttribute(java.lang.String name, java.lang.String typeName, int type, int size, int precision, boolean allowNulls)` Creates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).
`protected void` | `configureExtendedTypes(ExtendedTypeMap map)` Installs appropriate ExtendedTypes as converters for passing values between JDBC and Java layers.
`DataNode` | `createDataNode(java.lang.String name)` Deprecated. since 1.2 this method is not used as node behavior customization is done via SQLActionVisitor.
`java.lang.String` | `createFkConstraint(DbRelationship rel)` Returns a SQL string that can be used to create a foreign key constraint for the relationship.
`protected PkGenerator` | `createPkGenerator()` Creates and returns a primary key generator.
`java.lang.String` | `createTable(DbEntity entity)` Returns a SQL string that can be used to create database table corresponding to `ent` parameter.
`protected void` | `createTableAppendColumn(java.lang.StringBuffer sqlBuffer, DbAttribute column)` Appends SQL for column creation to CREATE TABLE buffer.
`protected void` | `createTableAppendPKClause(java.lang.StringBuffer sqlBuffer, DbEntity entity)`
`java.lang.String` | `createUniqueConstraint(DbEntity source, java.util.Collection columns)` Returns a DDL string to create a unique constraint over a set of columns.
`java.lang.String` | `dropTable(DbEntity ent)` Returns a SQL string to drop a table corresponding to `ent` DbEntity.
`java.lang.String[]` | `externalTypesForJdbcType(int type)` Returns an array of RDBMS types that can be used with JDBC `type`.
`java.net.URL` | `findAdapterResource(java.lang.String name)` Locates and returns a named adapter resource.
`SQLAction` | `getAction(Query query, DataNode node)` Uses JdbcActionBuilder to create the right action.
`java.lang.String` | `getBatchTerminator()` Returns default separator - a semicolon.
`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)` Creates and returns a default implementation of a qualifier translator.
`QueryTranslator` | `getQueryTranslator(Query query)` Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions.
`protected java.lang.Class` | `queryTranslatorClass(Query q)` Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions.
`void` | `setPkGenerator(PkGenerator pkGenerator)` Sets new primary key generator.
`void` | `setSupportsBatchUpdates(boolean flag)`
`void` | `setSupportsFkConstraints(boolean flag)`
`void` | `setSupportsGeneratedKeys(boolean flag)`
`void` | `setSupportsUniqueConstraints(boolean flag)`
`boolean` | `shouldRunBatchQuery(DataNode node, java.sql.Connection con, BatchQuery query, OperationObserver delegate)` Deprecated. Since 1.2 this method is obsolete and is ignored across Cayenne.
`boolean` | `supportsBatchUpdates()` Returns `true` if the target database supports batch updates.
`boolean` | `supportsFkConstraints()` Returns true.
`boolean` | `supportsGeneratedKeys()` Returns true if a target database supports key autogeneration.
`boolean` | `supportsUniqueConstraints()` Returns true.
`java.lang.String` | `tableTypeForTable()` Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a simple user table.
`java.lang.String` | `tableTypeForView()` Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a view table.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### pkGenerator

    protected PkGenerator pkGenerator

### typesHandler

    protected TypesHandler typesHandler

### extendedTypes

    protected ExtendedTypeMap extendedTypes

### supportsBatchUpdates

    protected boolean supportsBatchUpdates

### supportsFkConstraints

    protected boolean supportsFkConstraints

### supportsUniqueConstraints

    protected boolean supportsUniqueConstraints

### supportsGeneratedKeys

    protected boolean supportsGeneratedKeys

Constructor Detail

### JdbcAdapter

    public JdbcAdapter()

  Creates new JdbcAdapter with a set of default parameters.

Method Detail

### getBatchTerminator

    public java.lang.String getBatchTerminator()

  Returns default separator - a semicolon.

  Specified by:
    `getBatchTerminator` in interface `DbAdapter`
  Since:
    1.0.4

### findAdapterResource

    public java.net.URL findAdapterResource(java.lang.String name)

  Locates and returns a named adapter resource. A resource can be an XML file, etc.

  This implementation is based on the premise that each adapter is located in its own Java package and all resources are in the same package as well. Resource lookup is recursive, so that if DbAdapter is a subclass of another adapter, parent adapter package is searched as a failover.

  Since:
    1.1

### configureExtendedTypes

    protected void configureExtendedTypes(ExtendedTypeMap map)

  Installs appropriate ExtendedTypes as converters for passing values between JDBC and Java layers. Called from default constructor.

### createPkGenerator

    protected PkGenerator createPkGenerator()

  Creates and returns a primary key generator. This factory method should be overriden by JdbcAdapter subclasses to provide custom implementations of PKGenerator.

### getPkGenerator

    public PkGenerator getPkGenerator()

  Returns primary key generator associated with this DbAdapter.

  Specified by:
    `getPkGenerator` in interface `DbAdapter`

### setPkGenerator

    public void setPkGenerator(PkGenerator pkGenerator)

  Sets new primary key generator.

  Since:
    1.1

### getQueryTranslator

    public QueryTranslator getQueryTranslator(Query query)
                                       throws java.lang.Exception

  Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions.

  Description copied from interface: `DbAdapter`
  Creates and returns a QueryTranslator appropriate for the specified `query` parameter. Sets translator "query" and "adapter" property.

  This factory method allows subclasses to specify their own translators that implement vendor-specific optimizations.

  Specified by:
    `getQueryTranslator` in interface `DbAdapter`
  Throws:
    `java.lang.Exception`

### queryTranslatorClass

    protected java.lang.Class queryTranslatorClass(Query q)

  Deprecated. since 1.2 this method is unneeded as customizations are done via custom SQLActions.

  Returns a class of the query translator that should be used to translate the query `q` to SQL. Exists mainly for the benefit of subclasses that can override this method providing their own translator.

### supportsFkConstraints

    public boolean supportsFkConstraints()

  Returns true.

  Specified by:
    `supportsFkConstraints` in interface `DbAdapter`

### setSupportsFkConstraints

    public void setSupportsFkConstraints(boolean flag)

  Since:
    1.1

### supportsUniqueConstraints

    public boolean supportsUniqueConstraints()

  Returns true.

  Specified by:
    `supportsUniqueConstraints` in interface `DbAdapter`
  Since:
    1.1

### setSupportsUniqueConstraints

    public void setSupportsUniqueConstraints(boolean flag)

  Since:
    1.1

### dropTable

    public java.lang.String dropTable(DbEntity ent)

  Returns a SQL string to drop a table corresponding to `ent` DbEntity.

  Specified by:
    `dropTable` in interface `DbAdapter`

### createTable

    public java.lang.String createTable(DbEntity entity)

  Returns a SQL string that can be used to create database table corresponding to `ent` parameter.

  Specified by:
    `createTable` in interface `DbAdapter`

### createTableAppendPKClause

    protected void createTableAppendPKClause(java.lang.StringBuffer sqlBuffer,
                                             DbEntity entity)

  Since:
    1.2

### createTableAppendColumn

    protected void createTableAppendColumn(java.lang.StringBuffer sqlBuffer,
                                           DbAttribute column)

  Appends SQL for column creation to CREATE TABLE buffer.

  Since:
    1.2

### createUniqueConstraint

    public java.lang.String createUniqueConstraint(DbEntity source,
                                                   java.util.Collection columns)

  Returns a DDL string to create a unique constraint over a set of columns.

  Specified by:
    `createUniqueConstraint` in interface `DbAdapter`
  Since:
    1.1

### createFkConstraint

    public java.lang.String createFkConstraint(DbRelationship rel)

  Returns a SQL string that can be used to create a foreign key constraint for the relationship.

  Specified by:
    `createFkConstraint` in interface `DbAdapter`

### externalTypesForJdbcType

    public java.lang.String[] externalTypesForJdbcType(int type)

  Description copied from interface: `DbAdapter`
  Returns an array of RDBMS types that can be used with JDBC `type`. Valid JDBC types are defined in java.sql.Types.

  Specified by:
    `externalTypesForJdbcType` in interface `DbAdapter`

### getExtendedTypes

    public ExtendedTypeMap getExtendedTypes()

  Description copied from interface: `DbAdapter`
  Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.

  Specified by:
    `getExtendedTypes` in interface `DbAdapter`
  See Also:
    `ExtendedType`

### buildAttribute

    public DbAttribute buildAttribute(java.lang.String name,
                                      java.lang.String typeName,
                                      int type,
                                      int size,
                                      int precision,
                                      boolean allowNulls)

  Description copied from interface: `DbAdapter`
  Creates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).

  Specified by:
    `buildAttribute` in interface `DbAdapter`
  Parameters:
    `name` - database column name
    `typeName` - database specific type name, may be used as a hint to determine the right JDBC type.
    `type` - JDBC column type
    `size` - database column size (ignored if less than zero)
    `precision` - database column precision (ignored if less than zero)
    `allowNulls` - database column nullable parameter

### tableTypeForTable

    public java.lang.String tableTypeForTable()

  Description copied from interface: `DbAdapter`
  Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a simple user table.

  Specified by:
    `tableTypeForTable` in interface `DbAdapter`

### tableTypeForView

    public java.lang.String tableTypeForView()

  Description copied from interface: `DbAdapter`
  Returns the name of the table type (as returned by `DatabaseMetaData.getTableTypes`) for a view table.

  Specified by:
    `tableTypeForView` in interface `DbAdapter`

### getQualifierTranslator

    public QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler)

  Creates and returns a default implementation of a qualifier translator.

  Specified by:
    `getQualifierTranslator` in interface `DbAdapter`

### createDataNode

    public DataNode createDataNode(java.lang.String name)

  Deprecated. since 1.2 this method is not used as node behavior customization is done via SQLActionVisitor.

  Creates an instance of DataNode class.

  Specified by:
    `createDataNode` in interface `DbAdapter`

### getAction

    public SQLAction getAction(Query query,
                               DataNode node)

  Uses JdbcActionBuilder to create the right action.

  Specified by:
    `getAction` in interface `DbAdapter`
  Since:
    1.2

### bindParameter

    public void bindParameter(java.sql.PreparedStatement statement,
                              java.lang.Object object,
                              int pos,
                              int sqlType,
                              int precision)
                       throws java.sql.SQLException,
                              java.lang.Exception

  Description copied from interface: `DbAdapter`
  Binds an object value to PreparedStatement's numbered parameter.

  Specified by:
    `bindParameter` in interface `DbAdapter`
  Throws:
    `java.sql.SQLException`
    `java.lang.Exception`

### supportsBatchUpdates

    public boolean supportsBatchUpdates()

  Description copied from interface: `DbAdapter`
  Returns `true` if the target database supports batch updates.

  Specified by:
    `supportsBatchUpdates` in interface `DbAdapter`

### setSupportsBatchUpdates

    public void setSupportsBatchUpdates(boolean flag)

### supportsGeneratedKeys

    public boolean supportsGeneratedKeys()

  Description copied from interface: `DbAdapter`
  Returns true if a target database supports key autogeneration. This feature also requires JDBC3-compliant driver.

  Specified by:
    `supportsGeneratedKeys` in interface `DbAdapter`
  Since:
    1.2

### setSupportsGeneratedKeys

    public void setSupportsGeneratedKeys(boolean flag)

  Since:
    1.2

### shouldRunBatchQuery

    public boolean shouldRunBatchQuery(DataNode node,
                                       java.sql.Connection con,
                                       BatchQuery query,
                                       OperationObserver delegate)
                                throws java.sql.SQLException,
                                       java.lang.Exception

  Deprecated. Since 1.2 this method is obsolete and is ignored across Cayenne.

  Always returns `true`, letting DataNode to handle the query.

  Specified by:
    `shouldRunBatchQuery` in interface `DbAdapter`
  Throws:
    `java.sql.SQLException`
    `java.lang.Exception`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2006 Apache.org All Rights Reserved.