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 <nprigour@gmail.com> added support for MySQL versions 5.6 (and above)
  • Field Details

    • 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
  • Constructor Details

    • MySQLDataStoreFactory

      public MySQLDataStoreFactory()
  • Method Details

    • createSQLDialect

      protected SQLDialect createSQLDialect(JDBCDataStore dataStore)
      Description copied from class: JDBCDataStoreFactory
      Creates the dialect that the datastore uses for communication with the underlying database.
      Specified by:
      createSQLDialect in class JDBCDataStoreFactory
      Parameters:
      dataStore - The datastore.
    • getDisplayName

      public String getDisplayName()
      Description copied from interface: DataAccessFactory
      Name suitable for display to end user.

      A non localized display name for this data store type.

      Specified by:
      getDisplayName in interface DataAccessFactory
      Overrides:
      getDisplayName in class JDBCDataStoreFactory
      Returns:
      A short name suitable for display in a user interface.
    • getDriverClassName

      protected String getDriverClassName()
      Description copied from class: JDBCDataStoreFactory
      Returns the fully qualified class name of the jdbc driver.

      For example: org.postgresql.Driver

      Specified by:
      getDriverClassName in class JDBCDataStoreFactory
    • getDatabaseID

      protected String getDatabaseID()
      Description copied from class: JDBCDataStoreFactory
      Returns a string to identify the type of the database.

      Example: 'postgis'.

      Specified by:
      getDatabaseID in class JDBCDataStoreFactory
    • getDescription

      public String getDescription()
      Description copied from interface: DataAccessFactory
      Describe 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: JDBCDataStoreFactory
      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.
      Specified by:
      getValidationQuery in class JDBCDataStoreFactory
    • setupParameters

      protected void setupParameters(Map<String,Object> parameters)
      Description copied from class: JDBCDataStoreFactory
      Sets 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:
      setupParameters in class JDBCDataStoreFactory
      Parameters:
      parameters - Map of DataAccessFactory.Param objects.
    • createDataStoreInternal

      protected JDBCDataStore createDataStoreInternal(JDBCDataStore dataStore, Map<String,?> params) throws IOException
      Description copied from class: JDBCDataStoreFactory
      Subclass 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:
      createDataStoreInternal in class JDBCDataStoreFactory
      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:
      true if 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:
      true if the database varion is is 8.0 or greater