应用背景
在空间信息系统开发中,GIS 数据的批量写入效率尤为关键。以下展示如何通过 JDBC 向 YashanDB 中插入 st_geometry 类型的点数据。

表结构示例

drop table gis;
create table gis(id number not null, pos st_geometry not null);

JDBC 批量插入代码
使用 PreparedStatement 搭配 addBatch 方法,实现高效批量插入:

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();

验证插入结果
执行以下 SQL 查看插入效果:

select id, st_astext(pos) from gis;
输出显示所有插入的点坐标为:

POINT (-137.690708000000001 33.187434000000003)

共计 10 条记录,表明写入成功。

实用建议
利用 ST_GEOMFROMTEXT 函数可方便地将文本格式的坐标转换为几何对象,并配合 JDBC 批处理提升整体写入性能。


数据库砖家
1 声望0 粉丝