MySQL Plugin¶
Supports direct access to a MySQL database. Currently supported versions include 5.6 and 5.7 and 8.
Maven
<dependency>
<groupId>org.geotools.jdbc</groupId>
<artifactId>gt-jdbc-mysql</artifactId>
<version>${geotools.version}</version>
</dependency>
Note that the groupId
is org.geotools.jdbc
for this and other JDBC plugin modules.
Connection Parameters¶
Basic connection parameters
Parameter |
Description |
---|---|
|
Must be the string |
|
Machine name or IP address to connect to |
|
Port number to connect to, default 3309 |
|
The database to connect to |
|
User name |
|
Password |
Advanced Connection Parameters
Parameter |
Description |
---|---|
|
Storage engine to use for created tables,
default is |
See additional notes below on storage engine.
Creating¶
Here is a quick example:
java.util.Map params = new java.util.HashMap();
params.put(MySQLDataStoreFactory.DBTYPE.key, "mysql");
params.put(MySQLDataStoreFactory.HOST.key, "localhost");
params.put(MySQLDataStoreFactory.PORT.key, 3309);
params.put(MySQLDataStoreFactory.DATABASE.key, "database");
params.put(MySQLDataStoreFactory.USER.key, "geotools");
params.put(MySQLDataStoreFactory.PASSWD.key, "geotools");
DataStore dataStore=DataStoreFinder.getDataStore(params);
Storage Engine¶
The MySQL Datastore is capable of creating new tables via DataStore.createSchema()
. The storage engine connection parameter controls what storage engine is used for the new table. The default is MyISAM
which is the only engine that supports spatial indexing. However depending on the use of the able other engines may be appropriate. For instance InnoDB
is fully transaction safe so is more suitable to tables that will be undergoing many concurrent edits.
Example:
params.put(MySQLDataStoreFactory.STORAGE_ENGINE, "MyISAM");