我有以下的JDBC代码。请注意,我尝试使用PostGIS地理信息:
PreparedStatement stmt = db.prepareStatement("INSERT INTO " +
"source_imagery (image_path, boundary, image_time)" +
" VALUES (?, ST_GeographyFromText('POLYGON((" +
"? ?, ? ?, ? ?, ? ?))'), ?)");
stmt.setString(1, file.getAbsolutePath());
stmt.setDouble(2, bounds.getY());
stmt.setDouble(3, bounds.getX());
...
在代码的最后一行,我遇到了以下异常:
org.postgresql.util.PSQLException: The column index is out of range: 3, number of columns: 2.
我知道它认为我只有2个参数,但你可以看到我打算有10个。我不确定为什么它没有读取POLYGON
中的任何参数。我知道如果我直接在数据库中使用这个SQL语句是有效的,但我不确定我需要改变什么才能让它在我的Java代码中工作。有什么想法吗?