应用场景
在使用 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 是构建几何对象的关键。


数据库砖家
1 声望0 粉丝