Search code examples
javajdbcgeospatialgeotools

insert geospatial datatype( mutipolygon) in mysql with java( jdbc)


I am using geotools library to extract the location information. With that I am getting an object of type

class com.vividsolutions.jts.geom.MultiPolygon

I now want to store this field in my mysql table with a jdbc connection . When I directly try to insert it as pstmtInsert.setObject(4, geoobject) I am getting this error

Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Cannot get geometry object from data you send to the GEOMETRY field

Solution

  • MySql can't know how to store your GEO object, or what is his size. You should not store the object the way you're trying.

    The PreparedStatement#setObject() documentation says :

    The JDBC specification specifies a standard mapping from Java Object types to SQL types. The given argument will be converted to the corresponding SQL type before being sent to the database. [...] This method throws an exception if there is an ambiguity, for example, if the object is of a class implementing more than one of the interfaces named above.