Package 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
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
supportsFkConstraints
will be 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
-
Field Summary
FieldsFields inherited from class org.apache.cayenne.dba.JdbcAdapter
batchQueryBuilderFactory, caseInsensitiveCollations, ejbqlTranslatorFactory, extendedTypes, logger, quotingStrategy, resourceLocator, supportsBatchUpdates, supportsGeneratedKeys, supportsUniqueConstraints, typesHandler
-
Constructor Summary
ConstructorsConstructorDescriptionMySQLAdapter
(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry) -
Method Summary
Modifier and TypeMethodDescriptionvoid
bindParameter
(PreparedStatement statement, ParameterBinding binding) Binds an object value to PreparedStatement's parameter.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
Installs appropriate ExtendedTypes used as converters for passing values between JDBC and Java layers.protected EJBQLTranslatorFactory
Creates and returns anEJBQLTranslatorFactory
used to generate visitors for EJBQL to SQL translations.protected PkGenerator
Creates and returns a primary key generator.protected QuotingStrategy
createTable
(DbEntity entity) Overrides super implementation to explicitly set table engine to InnoDB if FK constraints are supported by this adapter.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.dropTableStatements
(DbEntity table) Returns a collection of SQL statements needed to drop a database table.Uses special action builder to create the right action.void
setStorageEngine
(String engine) boolean
typeSupportsLength
(int type) Returns true if supplied type can have a length attribute as a part of column definitionMethods inherited from class org.apache.cayenne.dba.JdbcAdapter
createFkConstraint, createUniqueConstraint, externalTypesForJdbcType, findResource, getBatchTerminator, getEjbqlTranslatorFactory, getExtendedTypes, getJdbcEventLogger, getPkGenerator, getQuotingStrategy, getSelectTranslator, getSelectTranslator, getSystemSchemas, getType, initExtendedTypes, setEjbqlTranslatorFactory, setPkGenerator, setSupportsBatchUpdates, setSupportsGeneratedKeys, setSupportsUniqueConstraints, sizeAndPrecision, supportsBatchUpdates, supportsCatalogsOnReverseEngineering, supportsGeneratedKeys, supportsUniqueConstraints, tableTypeForTable, tableTypeForView, unwrap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.cayenne.dba.DbAdapter
supportsGeneratedKeysForBatchInserts
-
Field Details
-
storageEngine
-
-
Constructor Details
-
MySQLAdapter
public MySQLAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry)
-
-
Method Details
-
createQuotingStrategy
- Overrides:
createQuotingStrategy
in classJdbcAdapter
-
getSqlTreeProcessor
- Specified by:
getSqlTreeProcessor
in interfaceDbAdapter
- Overrides:
getSqlTreeProcessor
in classJdbcAdapter
- Returns:
SQLTreeProcessor
that can adjust SQL tree to specific database flavour- Since:
- 4.2
-
getAction
Uses special action builder to create the right action.- Specified by:
getAction
in interfaceDbAdapter
- Overrides:
getAction
in classJdbcAdapter
- Since:
- 1.2
-
dropTableStatements
Description copied from interface:DbAdapter
Returns a collection of SQL statements needed to drop a database table.- Specified by:
dropTableStatements
in interfaceDbAdapter
- Overrides:
dropTableStatements
in classJdbcAdapter
- Since:
- 3.0
-
configureExtendedTypes
Installs appropriate ExtendedTypes used as converters for passing values between JDBC and Java layers.- Overrides:
configureExtendedTypes
in classJdbcAdapter
-
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 interfaceDbAdapter
- Overrides:
buildAttribute
in classJdbcAdapter
- 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)precision
- database column scale, i.e. the number of decimal digits (ignored if less than zero)allowNulls
- database column nullable parameter
-
bindParameter
public void bindParameter(PreparedStatement statement, ParameterBinding binding) throws SQLException, Exception Description copied from interface:DbAdapter
Binds an object value to PreparedStatement's parameter.- Specified by:
bindParameter
in interfaceDbAdapter
- Overrides:
bindParameter
in classJdbcAdapter
- Throws:
SQLException
Exception
-
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 classJdbcAdapter
-
createEJBQLTranslatorFactory
Description copied from class:JdbcAdapter
Creates and returns anEJBQLTranslatorFactory
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 classJdbcAdapter
- Since:
- 3.0
-
createTable
Overrides super implementation to explicitly set table engine to InnoDB if FK constraints are supported by this adapter.- Specified by:
createTable
in interfaceDbAdapter
- Overrides:
createTable
in classJdbcAdapter
-
createTableAppendPKClause
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 classJdbcAdapter
- Since:
- 1.2
-
createTableAppendColumn
Appends AUTO_INCREMENT clause to the column definition for generated columns.- Specified by:
createTableAppendColumn
in interfaceDbAdapter
- Overrides:
createTableAppendColumn
in classJdbcAdapter
- Parameters:
sqlBuffer
- theStringBuffer
to append the column type tocolumn
- theDbAttribute
defining the column to append type for
-
typeSupportsLength
public boolean typeSupportsLength(int type) Description copied from class:JdbcAdapter
Returns true if supplied type can have a length attribute as a part of column definition- Specified by:
typeSupportsLength
in interfaceDbAdapter
- Overrides:
typeSupportsLength
in classJdbcAdapter
-
getSystemCatalogs
- Specified by:
getSystemCatalogs
in interfaceDbAdapter
- Overrides:
getSystemCatalogs
in classJdbcAdapter
- Returns:
- list of system catalogs
-
getStorageEngine
- Since:
- 3.0
-
setStorageEngine
- Since:
- 3.0
-