2012-12-26 103 views
1

我需要將PostgreSQL的幾何(MultiPolygon)類型變量存儲到java變量 這是因爲我試圖將幾何列添加到非空間表使用mapserver查詢地圖在java中存儲PostgreSQL/PostGIS「幾何(MultiPolygon)」數據類型

我試圖將它存儲在導致錯誤的字符串中。

請建議我一個數據類型在Java中,這樣我可以在空間數據庫的幾何列存儲的值。

這裏是我的代碼片段:

String query="select geom from apmandal where mandalname='"+mname+"'"; 
    ResultSet rs=st.executeQuery(query); 
    rs.next(); 
    Geometry geomval=rs.getXXX(); 

請提出一個的getXXX()方法,這樣我可以提前從註釋中檢索幾何列值

感謝

編輯:

String query = "select geom from apmandal order by area desc;"; 
ResultSet rs = st0.executeQuery(query); 
rs.next(); 
String geomval = rs.getString(1).toString(); 
String newquery = "insert into test(mname, geom) values('ZAHEERABAD','"+geomval+"');"; 
int tel = st1.executeUpdate(newquery); 
System.out.println("inserted "+tel+" record"); 

回答

1

你可以簡單地轉換爲text表示:

String query="select geom::text from apmandal where mandalname='"+mname+"'";

然後你就可以把它就像任何其他的文本。
我引用PostGIS manual here

至少爲PostgreSQL 8.3版本的 - 一切都可以轉換成文本 (大概是因爲神奇的未知類型的),所以沒有明確的強制轉換 對於需要存在於你將一個對象轉換爲文本。

+1

非常感謝@Erwin !!我只是想通了,並回來通知..我直接實施它的Java ..我的代碼如下
'query =「從區域desc選擇幾何從命令按順序;」;'' 'ResultSet rs = st0.executeQuery查詢);' 'rs.next();' 'String geomval = rs.getString(1).toString();' 'String newquery =「insert into test(mname,geom)values('ZAHEERABAD' , ' 「+ geomval +」'); 「;'' INT TEL = st1.executeUpdate(newquery);'' 的System.out.println(」 插入 「+電話+」 記錄「);'現在我已經學會新的查詢從你..非常感謝:) – shrivardhan

相關問題