|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.geotools.data.jdbc.JDBC1DataStore
org.geotools.data.jdbc.JDBC2DataStore
org.geotools.data.jdbc.JDBCDataStore
org.geotools.data.mysql.MySQLDataStore
public class MySQLDataStore
An implementation of the GeoTools Data Store API for the MySQL database platform.
The plan is to support traditional MySQL datatypes, as well as the new geometric
datatypes provided with MySQL 4.1 and higher.
TODO: MySQLDataStore is not yet tested for MySQL 4.1's geometric datatypes.
Please see class JDBCDataStore
and
interface DataStore
for DataStore usage details.
Field Summary | |
---|---|
protected boolean |
wkbEnabled
When true wkb encoding will be used to transfer geometries over the wire |
Fields inherited from class org.geotools.data.jdbc.JDBC2DataStore |
---|
dataSource |
Fields inherited from class org.geotools.data.jdbc.JDBC1DataStore |
---|
allowWriteOnVolatileFIDs, config, listenerManager, sqlNameEscape, transactionIsolation, TYPE_MAPPINGS, typeHandler |
Constructor Summary | |
---|---|
MySQLDataStore(javax.sql.DataSource dataSource)
Basic constructor for MySQLDataStore. |
|
MySQLDataStore(javax.sql.DataSource dataSource,
java.lang.String databaseSchemaName)
Constructor for MySQLDataStore where the database schema name is provided. |
|
MySQLDataStore(javax.sql.DataSource dataSource,
java.lang.String databaseSchemaName,
java.lang.String namespace)
Constructor for MySQLDataStore where the database schema name is provided. |
Method Summary | |
---|---|
protected org.opengis.feature.type.AttributeDescriptor |
buildAttributeType(java.sql.ResultSet rs)
Constructs an AttributeType from a row in a ResultSet. |
protected JDBCFeatureWriter |
createFeatureWriter(FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> reader,
QueryData queryData)
|
protected int |
determineSRID(java.lang.String table,
java.lang.String column)
Provides a hook for subclasses to determine the SRID of a geometry column. |
FeatureWriter<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureWriter(java.lang.String typeName)
Utility method for getting a FeatureWriter for modifying existing features, using no feature filtering and auto-committing. |
FeatureWriter<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureWriterAppend(java.lang.String typeName)
Utility method for getting a FeatureWriter for adding new features, using auto-committing. |
static java.lang.Class |
getGeomClass(java.lang.String type)
Returns the geomoty class associated with the string passed in or null |
protected AttributeIO |
getGeometryAttributeIO(org.opengis.feature.type.AttributeDescriptor type,
QueryData queryData)
Hook to create the geometry attribute IO for a vendor specific data source. |
static MySQLDataStore |
getInstance(java.lang.String host,
int port,
java.lang.String schema,
java.lang.String username,
java.lang.String password)
Utility method for creating a MySQLDataStore from database connection parameters. |
static MySQLDataStore |
getInstance(java.lang.String host,
java.lang.String schema,
java.lang.String username,
java.lang.String password)
A utility method for creating a MySQLDataStore from database connection parameters, using the default port (3306) for MySQL. |
SQLBuilder |
getSqlBuilder(java.lang.String typeName)
Hook for subclass to return a different sql builder. |
java.util.Set |
getSupportedHints()
|
boolean |
isWKBEnabled()
Returns true if the WKB format is used to transfer geometries, false otherwise |
protected void |
setAutoCommit(boolean forWrite,
java.sql.Connection conn)
This method should be overridden to do nothing by DataStores where setting autoCommit causes funky behaviour (ie. |
void |
setWKBEnabled(boolean enabled)
If turned on, WKB will be used to transfer geometry data instead of WKT |
Methods inherited from class org.geotools.data.jdbc.JDBC2DataStore |
---|
createConnection, dispose, finalize |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected boolean wkbEnabled
Constructor Detail |
---|
public MySQLDataStore(javax.sql.DataSource dataSource) throws java.io.IOException
dataSource
- A source of connections for this datastore
java.io.IOException
- if the database cannot be properly accessedDataSource
,
MySQLConnectionFactory
public MySQLDataStore(javax.sql.DataSource dataSource, java.lang.String databaseSchemaName) throws java.io.IOException
dataSource
- A source of connections for this datastoredatabaseSchemaName
- the database schema. Can be null. See the comments for the parameter schemaPattern in DatabaseMetaData.getTables
, because databaseSchemaName behaves in the same way.
java.io.IOException
- if the database cannot be properly accessedpublic MySQLDataStore(javax.sql.DataSource dataSource, java.lang.String databaseSchemaName, java.lang.String namespace) throws java.io.IOException
dataSource
- A source of connections for this datastoredatabaseSchemaName
- the database schema. Can be null. See the comments for the parameter schemaPattern in DatabaseMetaData.getTables
, because databaseSchemaName behaves in the same way.namespace
- the namespace for this data store. Can be null, in which case the namespace will simply be the schema name.
java.io.IOException
- if the database cannot be properly accessedMethod Detail |
---|
public static MySQLDataStore getInstance(java.lang.String host, java.lang.String schema, java.lang.String username, java.lang.String password) throws java.io.IOException, java.sql.SQLException
host
- the host name or IP address of the database serverschema
- the name of the database instanceusername
- the database usernamepassword
- the password corresponding to username
java.io.IOException
java.sql.SQLException
public static MySQLDataStore getInstance(java.lang.String host, int port, java.lang.String schema, java.lang.String username, java.lang.String password) throws java.io.IOException, java.sql.SQLException
host
- the host name or IP address of the database serverport
- the port number of the databaseschema
- the name of the database instanceusername
- the database usernamepassword
- the password corresponding to username
java.io.IOException
- if the MySQLDataStore cannot be created because the database cannot be properly accessed
java.sql.SQLException
- if a MySQL connection pool cannot be establishedpublic FeatureWriter<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureWriter(java.lang.String typeName) throws java.io.IOException
typeName
- the feature type name (the table name)
java.io.IOException
- if the database cannot be properly accessedpublic FeatureWriter<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureWriterAppend(java.lang.String typeName) throws java.io.IOException
typeName
- the feature type name (the table name)
java.io.IOException
- if the database cannot be properly accessedprotected org.opengis.feature.type.AttributeDescriptor buildAttributeType(java.sql.ResultSet rs) throws java.io.IOException
In addition to standard SQL types, this method identifies MySQL 4.1's geometric datatypes and creates attribute types accordingly. This happens when the datatype, identified by column 5 of the ResultSet parameter, is equal to java.sql.Types.OTHER. If a Types.OTHER ends up not being geometric, this method simply calls the parent class's buildAttributeType method to do something with it.
Note: Overriding methods must never move the current row pointer in the result set.
buildAttributeType
in class JDBC1DataStore
rs
- The ResultSet containing the result of a
DatabaseMetaData.getColumns call.
java.sql.SQLException
- If an error occurs processing the ResultSet.
DataSourceException
- Provided for overriding classes to wrap
exceptions caused by other operations they may perform to
determine additional types. This will only be thrown by the
default implementation if a type is present that is not present
in the TYPE_MAPPINGS.
NOTE: the srid of the features stored is used to build an CRS assuming
that it an ESPG srid
java.io.IOException
- If an error occurs processing the ResultSet.public static java.lang.Class getGeomClass(java.lang.String type)
public SQLBuilder getSqlBuilder(java.lang.String typeName) throws java.io.IOException
JDBC1DataStore
Subclasses requiring a ClientTransactionAccessor should override and instantiate an SQLBuilder with one in the constructor.
getSqlBuilder
in class JDBC1DataStore
typeName
- The typename for the sql builder.
java.io.IOException
- if anything goes wrong.JDBC1DataStore.getSqlBuilder(java.lang.String)
protected AttributeIO getGeometryAttributeIO(org.opengis.feature.type.AttributeDescriptor type, QueryData queryData)
JDBC1DataStore
getGeometryAttributeIO
in class JDBC1DataStore
type
- The AttributeDescriptor to read.queryData
- The connection holder
org.geotools.data.jdbc.JDBCDataStore#getGeometryAttributeIO(org.geotools.feature.AttributeType)
protected JDBCFeatureWriter createFeatureWriter(FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> reader, QueryData queryData) throws java.io.IOException
createFeatureWriter
in class JDBC1DataStore
java.io.IOException
public java.util.Set getSupportedHints()
getSupportedHints
in class JDBC1DataStore
protected void setAutoCommit(boolean forWrite, java.sql.Connection conn) throws java.sql.SQLException
JDBC1DataStore
setAutoCommit
in class JDBC1DataStore
java.sql.SQLException
public boolean isWKBEnabled()
public void setWKBEnabled(boolean enabled)
enabled
- protected int determineSRID(java.lang.String table, java.lang.String column) throws java.io.IOException
JDBC1DataStore
This allows SRIDs to be determined in a Vendor specific way and to be cached by the default implementation. To retreive these srids, get the FeatureTypeInfo object for the table and call getSRID(geometryColumnName). This will allow storage of SRIDs for multiple geometry columns in each table.
If no SRID can be found, subclasses should return -1. The default implementation always returns -1.
determineSRID
in class JDBC1DataStore
table
- The name of the table to get the SRID for.column
- The name of the geometry column within the table to get SRID
for.
java.io.IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |