应用场景在使用 Java 语言进行空间数据批量写入时,如何通过 JDBC 高效地向 YashanDB 插入 st_geometry 类型数据,是一个常见需求。
示例建表语句
drop table gis;
create table gis(id number not null, pos st_geometry not null);
复制代码
插入代码片段以下 Java 程序段展示了如何向 gis 表中批量写入点(POINT)类型的空间数据:
conn.setAutoCommit(false);
PreparedStatement ps = conn.prepareStatement("insert into gis values(?, ST_GEOMFROMTEXT(?))");
for(int i = 0; i < 10; i++) {
ps.setInt(1, 1);
ps.setString(2, "POINT(-137.690708 33.187434)");
ps.addBatch();
}
ps.executeBatch();
conn.commit();
复制代码
插入结果预览执行后,可通过以下语句验证数据:
select id, st_astext(pos) from gis;
复制代码
输出结果类似于:
ID | ST_ASTEXT(POS)
---|-------------------------
1 | POINT (-137.690708... 33.187434...)
复制代码
共返回 10 条记录,说明数据插入成功。
总结建议在批量写入 GIS 数据时,使用 JDBC 的 addBatch + executeBatch 方式能有效提升插入效率。空间数据转换函数 ST_GEOMFROMTEXT 是构建几何对象的关键。
评论