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 SummaryFieldsFields inherited from class org.apache.cayenne.dba.JdbcAdaptercaseInsensitiveCollations, ejbqlTranslatorFactory, extendedTypes, logger, quotingStrategy, resourceLocator, supportsBatchUpdates, supportsGeneratedKeys, supportsUniqueConstraints, typesHandler
- 
Constructor SummaryConstructorsConstructorDescriptionMySQLAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidbindParameter(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 voidInstalls appropriate ExtendedTypes used as converters for passing values between JDBC and Java layers.protected EJBQLTranslatorFactoryCreates and returns anEJBQLTranslatorFactoryused to generate visitors for EJBQL to SQL translations.protected QuotingStrategycreateTable(DbEntity entity) Overrides super implementation to explicitly set table engine to InnoDB if FK constraints are supported by this adapter.voidcreateTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column) Appends AUTO_INCREMENT clause to the column definition for generated columns.protected voidcreateTableAppendPKClause(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.voidsetStorageEngine(String engine) booleantypeSupportsLength(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.JdbcAdaptercreateFkConstraint, createUniqueConstraint, externalTypesForJdbcType, findResource, getBatchTerminator, getEjbqlTranslatorFactory, getExtendedTypes, getJdbcEventLogger, getPkGenerator, getQuotingStrategy, getSelectTranslator, getSystemSchemas, getType, initExtendedTypes, setEjbqlTranslatorFactory, setPkGenerator, setSupportsBatchUpdates, setSupportsGeneratedKeys, setSupportsUniqueConstraints, sizeAndPrecision, supportsBatchUpdates, supportsCatalogsOnReverseEngineering, supportsGeneratedKeys, supportsUniqueConstraints, tableTypeForTable, tableTypeForView, typeSupportsScale, unwrapMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.cayenne.dba.DbAdaptersupportsGeneratedKeysForBatchInserts
- 
Field Details- 
storageEngine
 
- 
- 
Constructor Details- 
MySQLAdapterpublic MySQLAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry) 
 
- 
- 
Method Details- 
createQuotingStrategy- Overrides:
- createQuotingStrategyin class- JdbcAdapter
 
- 
getSqlTreeProcessor- Specified by:
- getSqlTreeProcessorin interface- DbAdapter
- Overrides:
- getSqlTreeProcessorin class- JdbcAdapter
- Returns:
- SQLTreeProcessorthat can adjust SQL tree to specific database flavour
- Since:
- 4.2
 
- 
getActionUses special action builder to create the right action.- Specified by:
- getActionin interface- DbAdapter
- Overrides:
- getActionin class- JdbcAdapter
- Since:
- 1.2
 
- 
dropTableStatementsDescription copied from interface:DbAdapterReturns a collection of SQL statements needed to drop a database table.- Specified by:
- dropTableStatementsin interface- DbAdapter
- Overrides:
- dropTableStatementsin class- JdbcAdapter
- Since:
- 3.0
 
- 
configureExtendedTypesInstalls appropriate ExtendedTypes used as converters for passing values between JDBC and Java layers.- Overrides:
- configureExtendedTypesin class- JdbcAdapter
 
- 
buildAttributepublic DbAttribute buildAttribute(String name, String typeName, int type, int size, int precision, boolean allowNulls) Description copied from interface:DbAdapterCreates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).- Specified by:
- buildAttributein interface- DbAdapter
- Overrides:
- buildAttributein 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
 
- 
bindParameterpublic void bindParameter(PreparedStatement statement, ParameterBinding binding) throws SQLException, Exception Description copied from interface:DbAdapterBinds an object value to PreparedStatement's parameter.- Specified by:
- bindParameterin interface- DbAdapter
- Overrides:
- bindParameterin class- JdbcAdapter
- Throws:
- SQLException
- Exception
 
- 
createEJBQLTranslatorFactoryDescription copied from class:JdbcAdapterCreates and returns anEJBQLTranslatorFactoryused to generate visitors for EJBQL to SQL translations. This method should be overriden by subclasses that need to customize EJBQL generation.- Overrides:
- createEJBQLTranslatorFactoryin class- JdbcAdapter
- Since:
- 3.0
 
- 
createTableOverrides super implementation to explicitly set table engine to InnoDB if FK constraints are supported by this adapter.- Specified by:
- createTablein interface- DbAdapter
- Overrides:
- createTablein class- JdbcAdapter
 
- 
createTableAppendPKClauseCustomizes 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:
- createTableAppendPKClausein class- JdbcAdapter
- Since:
- 1.2
 
- 
createTableAppendColumnAppends AUTO_INCREMENT clause to the column definition for generated columns.- Specified by:
- createTableAppendColumnin interface- DbAdapter
- Overrides:
- createTableAppendColumnin class- JdbcAdapter
- Parameters:
- sqlBuffer- the- StringBufferto append the column type to
- column- the- DbAttributedefining the column to append type for
 
- 
typeSupportsLengthpublic boolean typeSupportsLength(int type) Description copied from class:JdbcAdapterReturns true if supplied type can have a length attribute as a part of column definition- Specified by:
- typeSupportsLengthin interface- DbAdapter
- Overrides:
- typeSupportsLengthin class- JdbcAdapter
 
- 
getSystemCatalogs- Specified by:
- getSystemCatalogsin interface- DbAdapter
- Overrides:
- getSystemCatalogsin class- JdbcAdapter
- Returns:
- list of system catalogs
 
- 
getStorageEngine- Since:
- 3.0
 
- 
setStorageEngine- Since:
- 3.0
 
 
-