Class MySQLDataStoreFactory
- Object
-
- JDBCDataStoreFactory
-
- MySQLDataStoreFactory
-
- All Implemented Interfaces:
DataAccessFactory,DataStoreFactorySpi,Factory
public class MySQLDataStoreFactory extends JDBCDataStoreFactory
DataStoreFactory for MySQL database.- Author:
- David Winslow, The Open Planning Project, Nikolaos Pringouris
added support for MySQL versions 5.6 (and above)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface DataAccessFactory
DataAccessFactory.Param
-
-
Field Summary
Fields Modifier and Type Field Description static DataAccessFactory.ParamDBTYPEparameter for database typestatic DataAccessFactory.ParamENHANCED_SPATIAL_SUPPORTEnhanced Spatial Support is available from MySQL version 5.6 and onward.protected booleanenhancedSpatialSupportstatic DataAccessFactory.ParamPORTDefault port number for MYSQLstatic DataAccessFactory.ParamSTORAGE_ENGINEStorage engine to use when creating tables-
Fields inherited from class JDBCDataStoreFactory
BATCH_INSERT_SIZE, CALLBACK_FACTORY, DATABASE, DATASOURCE, EVICTOR_TESTS_PER_RUN, EXPOSE_PK, FETCHSIZE, HOST, MAX_OPEN_PREPARED_STATEMENTS, MAXCONN, MAXWAIT, MIN_EVICTABLE_TIME, MINCONN, NAMESPACE, PASSWD, PK_METADATA_TABLE, SCHEMA, SQL_ON_BORROW, SQL_ON_RELEASE, TEST_WHILE_IDLE, TIME_BETWEEN_EVICTOR_RUNS, USER, VALIDATECONN
-
-
Constructor Summary
Constructors Constructor Description MySQLDataStoreFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected JDBCDataStorecreateDataStoreInternal(JDBCDataStore dataStore, Map<String,?> params)Subclass hook to do additional initialization of a newly created datastore.protected SQLDialectcreateSQLDialect(JDBCDataStore dataStore)Creates the dialect that the datastore uses for communication with the underlying database.protected StringgetDatabaseID()Returns a string to identify the type of the database.StringgetDescription()Describe the nature of the datasource constructed by this factory.StringgetDisplayName()Name suitable for display to end user.protected StringgetDriverClassName()Returns the fully qualified class name of the jdbc driver.protected StringgetValidationQuery()Override this to return a good validation query (a very quick one, such as one that asks the database what time is it) or return null if the factory does not support validation.protected static booleanisMySqlVersion56OrAbove(JDBCDataStore dataStore)check if the version of MySQL is greater than 5.6.protected static booleanisMySqlVersion80OrAbove(JDBCDataStore dataStore)check if the version of MySQL is 8.0 or greater.protected voidsetupParameters(Map<String,Object> parameters)Sets up the database connection parameters.-
Methods inherited from class JDBCDataStoreFactory
canProcess, checkDBType, checkDBType, createDataSource, createDataSource, createDataStore, createNewDataStore, createSQLDialect, getImplementationHints, getJDBCUrl, getParametersInfo, isAvailable
-
-
-
-
Field Detail
-
DBTYPE
public static final DataAccessFactory.Param DBTYPE
parameter for database type
-
PORT
public static final DataAccessFactory.Param PORT
Default port number for MYSQL
-
STORAGE_ENGINE
public static final DataAccessFactory.Param STORAGE_ENGINE
Storage engine to use when creating tables
-
ENHANCED_SPATIAL_SUPPORT
public static final DataAccessFactory.Param ENHANCED_SPATIAL_SUPPORT
Enhanced Spatial Support is available from MySQL version 5.6 and onward. This includes some differentiation of the spatial function naming which generally follow the naming convention ST_xxxx. Moreover spatial operations are performed with precise object shape and not with minimum bounding rectangles. As of version 8 it is the only option.
-
enhancedSpatialSupport
protected boolean enhancedSpatialSupport
-
-
Method Detail
-
createSQLDialect
protected SQLDialect createSQLDialect(JDBCDataStore dataStore)
Description copied from class:JDBCDataStoreFactoryCreates the dialect that the datastore uses for communication with the underlying database.- Specified by:
createSQLDialectin classJDBCDataStoreFactory- Parameters:
dataStore- The datastore.
-
getDisplayName
public String getDisplayName()
Description copied from interface:DataAccessFactoryName suitable for display to end user.A non localized display name for this data store type.
- Specified by:
getDisplayNamein interfaceDataAccessFactory- Overrides:
getDisplayNamein classJDBCDataStoreFactory- Returns:
- A short name suitable for display in a user interface.
-
getDriverClassName
protected String getDriverClassName()
Description copied from class:JDBCDataStoreFactoryReturns the fully qualified class name of the jdbc driver.For example: org.postgresql.Driver
- Specified by:
getDriverClassNamein classJDBCDataStoreFactory
-
getDatabaseID
protected String getDatabaseID()
Description copied from class:JDBCDataStoreFactoryReturns a string to identify the type of the database.Example: 'postgis'.
- Specified by:
getDatabaseIDin classJDBCDataStoreFactory
-
getDescription
public String getDescription()
Description copied from interface:DataAccessFactoryDescribe the nature of the datasource constructed by this factory.A non localized description of this data store type.
- Returns:
- A human readable description that is suitable for inclusion in a list of available datasources.
-
getValidationQuery
protected String getValidationQuery()
Description copied from class:JDBCDataStoreFactoryOverride this to return a good validation query (a very quick one, such as one that asks the database what time is it) or return null if the factory does not support validation.- Specified by:
getValidationQueryin classJDBCDataStoreFactory
-
setupParameters
protected void setupParameters(Map<String,Object> parameters)
Description copied from class:JDBCDataStoreFactorySets up the database connection parameters.Subclasses may extend, but should not override. This implementation registers the following parameters.
Subclass implementation may remove any parameters from the map, or may overrwrite any parameters in the map.- Overrides:
setupParametersin classJDBCDataStoreFactory- Parameters:
parameters- Map ofDataAccessFactory.Paramobjects.
-
createDataStoreInternal
protected JDBCDataStore createDataStoreInternal(JDBCDataStore dataStore, Map<String,?> params) throws IOException
Description copied from class:JDBCDataStoreFactorySubclass hook to do additional initialization of a newly created datastore.Typically subclasses will want to override this method in the case where they provide additional datastore parameters, those should be processed here.
This method is provided with an instance of the datastore. In some cases subclasses may wish to create a new instance of the datastore, for instance in order to wrap the original instance. This is supported but the new datastore must be returned from this method. If not is such the case this method should still return the original passed in.
- Overrides:
createDataStoreInternalin classJDBCDataStoreFactory- Parameters:
dataStore- The newly created datastore.params- THe datastore parameters.- Throws:
IOException
-
isMySqlVersion56OrAbove
protected static boolean isMySqlVersion56OrAbove(JDBCDataStore dataStore)
check if the version of MySQL is greater than 5.6.- Returns:
trueif the database is higher than 5.6
-
isMySqlVersion80OrAbove
protected static boolean isMySqlVersion80OrAbove(JDBCDataStore dataStore)
check if the version of MySQL is 8.0 or greater. Needed to determine which syntax can be used for eg.ST_SRID()- Returns:
trueif the database varion is is 8.0 or greater
-
-