|
From: iceDice <nmi...@gm...> - 2009-12-01 10:08:38
|
Hello,
I use following code to modify existing features in MySQL database:
try {
Transaction transaction = new DefaultTransaction();
FeatureWriter<? extends FeatureType, ? extends Feature> fWriter = null;
//fWriter = mySQLDataStore.getFeatureWriter("streets",
transaction.AUTO_COMMIT);
fWriter = mySQLDataStore.getFeatureWriter("streets");
if (fWriter != null) {
while (fWriter.hasNext()) {
SimpleFeature feature = (SimpleFeature) fWriter.next();
String name = (String) (feature.getAttribute("name"));
if (name.trim().equals("some street name"))
feature.setAttribute("state", 1);
fWriter.write();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
transaction.close();
fWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
When i try to update feature attribute in database with fWriter.write(); i
get SQL exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error
in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near '' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3558)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3490)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2109)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2642)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1647)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1566)
at
org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at
org.geotools.data.jdbc.JDBCTextFeatureWriter.doUpdate(JDBCTextFeatureWriter.java:425)
at
org.geotools.data.jdbc.JDBCFeatureWriter.write(JDBCFeatureWriter.java:197)
at
org.geotools.data.InProcessLockingManager$1.write(InProcessLockingManager.java:335)
Can someone help me about this, what i am doing wrong?
I tried same code with PostGIS and everything works fine.
Best regards.
--
View this message in context: http://n2.nabble.com/MySQL-getting-a-FeatureWriter-for-modifying-existing-features-in-database-tp4092849p4092849.html
Sent from the geotools-gt2-users mailing list archive at Nabble.com.
|