/// reading a geometry from database
ResultSet rs = statement.executeQuery("SELECT geometry FROM states where name='Florida'");
STRUCT st = (oracle.sql.STRUCT) rs.getObject(1);
//convert STRUCT into geometry
JGeometry j_geom = JGeometry.load(st);
// ... manipulate the geometry or create a new JGeometry ...
/// writing a geometry back to database
PreparedStatement ps = connection.prepareStatement("UPDATE states set geometry=? where name='Florida'");
//convert JGeometry instance to DB STRUCT
STRUCT obj = JGeometry.store(j_geom, connection);
ps.setObject(1, obj);
ps.execute();
# 1 楼答案
如果Oracle Spatial API不适用于您,例如因为您使用OpenJDK(参见Oracle FAQs),那么还有一种更基本的方法可以从结果集
r
访问SDO_几何体对象:您也可以通过简单的循环打开数字类型,例如
或者使用等效的更方便的方法(参见StackOverflow: How do I convert Double[] to double[]?)
# 2 楼答案
看看JGeometry类。下面是一个调用空间类型的示例: