【发布时间】:2015-01-02 16:29:59
【问题描述】:
我的问题很基本。我正在使用 Android Google Maps 从地图上的某个位置获取坐标,并且我想将其插入到 PostgreSQL 数据库中。我知道我必须使用 PostGIS,但我该怎么做呢?谁能指出我正确的方向?
我在 Java 中的插入查询如下所示:
String query = "INSERT INTO modul (denumire, adresa, tip_retea, geom, poza)";
query += " VALUES ('"
+ getset.getDenumire() + "', '"
+ getset.getAdresa() + "', '"
+ getset.getTipretea()+ "',
ST_PointFromText('point(" + point.getX() + " " + point.getY()+ ")', 1), '"
+ getset.getImagine() + "');";
这会生成以下查询:
INSERT INTO modul (denumire, adresa, tip_retea, geom, poza) VALUES ('', '', '', ST_PointFromText('point(23.78977 44.320948)', 1), 'irrelevant b64 encoded image');
但是我怎样才能正确地将坐标插入数据库呢? “geom”列需要什么数据类型?提前谢谢你。
【问题讨论】:
-
你知道
SQL Injection是什么吗?您的代码很容易被操纵,从而将整个数据库暴露给攻击者。 -
你有什么建议?
-
构建查询的正确方法取决于您使用的框架。只是谷歌
%my_sql_framework% pass parameters to sql query的例子。 -
我已经发布了一个答案,解释了如何避免 sql 注入和创建正确的数据类型。接受的答案是抄袭我在 gis.stackexchange.com 上对您的评论。
标签: java android postgresql gis postgis