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

## org.apache.cayenne.dba.mysql
Class MySQLAdapter

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

All Implemented Interfaces:
  DbAdapter

    public class MySQLAdapter

extends JdbcAdapter

DbAdapter implementation for MySQL RDBMS.

### Foreign Key Constraint Handling

Foreign key constraints are supported by InnoDB engine and NOT supported by MyISAM engine. This adapter by default assumes MyISAM, so `JdbcAdapter.supportsFkConstraints()` will return false. Users can manually change this by calling setSupportsFkConstraints(true) or better by using an `AutoAdapter`, i.e. not entering the adapter name at all for the DataNode, letting Cayenne guess it in runtime. In the later case Cayenne will check the table_type MySQL variable to detect whether InnoDB is the default, and configure the adapter accordingly.

### Sample Connection Settings

- Adapter name: org.apache.cayenne.dba.mysql.MySQLAdapter
- DB URL: jdbc: mysql://serverhostname/dbname
- Driver Class: com.mysql.jdbc.Driver

Author:
  Andrus Adamchik

Field Summary

Fields inherited from class org.apache.cayenne.dba.JdbcAdapter
`ejbqlTranslatorFactory, extendedTypes, pkGenerator, supportsBatchUpdates, supportsFkConstraints, supportsGeneratedKeys, supportsUniqueConstraints, typesHandler`

Constructor Summary
`MySQLAdapter()`

Method Summary
`DbAttribute` | `buildAttribute(String name, 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 used as converters for passing values between JDBC and Java layers.
`protected EJBQLTranslatorFactory` | `createEJBQLTranslatorFactory()` Creates and returns an `EJBQLTranslatorFactory` used to generate visitors for EJBQL to SQL translations.
`protected PkGenerator` | `createPkGenerator()` Creates and returns a primary key generator.
`String` | `createTable(DbEntity entity)` Overrides super implementation to explicitly set table engine to InnoDB if FK constraints are supported by this adapter.
`protected void` | `createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)` Appends AUTO_INCREMENT clause to the column definition for generated columns.
`protected void` | `createTableAppendPKClause(StringBuffer sqlBuffer, DbEntity entity)` Customizes PK clause semantics to ensure that generated columns are in the beginning of the PK definition, as this seems to be a requirement for InnoDB tables.
`String` | `dropTable(DbEntity entity)` Returns a SQL string to drop a table corresponding to `ent` DbEntity.
`SQLAction` | `getAction(Query query, DataNode node)` Uses special action builder to create the right action.
`String` | `tableTypeForView()` Returns null, since views are not yet supported in MySQL.

Methods inherited from class org.apache.cayenne.dba.JdbcAdapter
`bindParameter, createFkConstraint, createUniqueConstraint, externalTypesForJdbcType, findAdapterResource, getBatchTerminator, getEjbqlTranslatorFactory, getExtendedTypes, getPkGenerator, getQualifierTranslator, setEjbqlTranslatorFactory, setPkGenerator, setSupportsBatchUpdates, setSupportsFkConstraints, setSupportsGeneratedKeys, setSupportsUniqueConstraints, supportsBatchUpdates, supportsFkConstraints, supportsGeneratedKeys, supportsUniqueConstraints, tableTypeForTable`

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

Constructor Detail

### MySQLAdapter

    public MySQLAdapter()

Method Detail

### getAction

    public SQLAction getAction(Query query,
                               DataNode node)

  Uses special action builder to create the right action.

  Specified by:
    `getAction` in interface `DbAdapter`
  Overrides:
    `getAction` in class `JdbcAdapter`
  Since:
    1.2

### dropTable

    public String dropTable(DbEntity entity)

  Description copied from class: `JdbcAdapter`
  Returns a SQL string to drop a table corresponding to `ent` DbEntity.

  Specified by:
    `dropTable` in interface `DbAdapter`
  Overrides:
    `dropTable` in class `JdbcAdapter`

### configureExtendedTypes

    protected void configureExtendedTypes(ExtendedTypeMap map)

  Installs appropriate ExtendedTypes used as converters for passing values between JDBC and Java layers.

  Overrides:
    `configureExtendedTypes` in class `JdbcAdapter`

### buildAttribute

    public DbAttribute buildAttribute(String name,
                                      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`
  Overrides:
    `buildAttribute` in class `JdbcAdapter`
  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 scale, i.e. the number of decimal digits (ignored if less than zero)
    `allowNulls` - database column nullable parameter

### tableTypeForView

    public String tableTypeForView()

  Returns null, since views are not yet supported in MySQL. Views are available on newer versions of MySQL.

  Specified by:
    `tableTypeForView` in interface `DbAdapter`
  Overrides:
    `tableTypeForView` in class `JdbcAdapter`

### createPkGenerator

    protected PkGenerator createPkGenerator()

  Creates and returns a primary key generator. Overrides superclass implementation to return an instance of MySQLPkGenerator that does the correct table locking.

  Overrides:
    `createPkGenerator` in class `JdbcAdapter`

### createEJBQLTranslatorFactory

    protected EJBQLTranslatorFactory createEJBQLTranslatorFactory()

  Description copied from class: `JdbcAdapter`
  Creates and returns an `EJBQLTranslatorFactory` used to generate visitors for EJBQL to SQL translations. This method should be overriden by subclasses that need to customize EJBQL generation.

  Overrides:
    `createEJBQLTranslatorFactory` in class `JdbcAdapter`
  Since:
    3.0

### createTable

    public String createTable(DbEntity entity)

  Overrides super implementation to explicitly set table engine to InnoDB if FK constraints are supported by this adapter.

  Specified by:
    `createTable` in interface `DbAdapter`
  Overrides:
    `createTable` in class `JdbcAdapter`

### createTableAppendPKClause

    protected void createTableAppendPKClause(StringBuffer sqlBuffer,
                                             DbEntity entity)

  Customizes PK clause semantics to ensure that generated columns are in the beginning of the PK definition, as this seems to be a requirement for InnoDB tables.

  Overrides:
    `createTableAppendPKClause` in class `JdbcAdapter`
  Since:
    1.2

### createTableAppendColumn

    protected void createTableAppendColumn(StringBuffer sqlBuffer,
                                           DbAttribute column)

  Appends AUTO_INCREMENT clause to the column definition for generated columns.

  Overrides:
    `createTableAppendColumn` in class `JdbcAdapter`

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

Copyright © 2001-2007 Apache Cayenne. All Rights Reserved.