2012-12-26 5 views
1

PostgreSQL의 geometry (MultiPolygon) 유형 변수를 Java 변수 에 저장해야합니다. 이는 기하학 열을 비 공간 테이블에 추가하려고하기 때문입니다. mapserver를 사용하여지도에 쿼리하기PostgreSQL/PostGIS "geometry (MultiPolygon)"데이터 형식을 Java에 저장

나는 그것을 오류로 인해서 String에 저장하려고 시도했다.

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 !! 나는 그것을 알아 냈고 알리기 위해 되돌아왔다. 나는 자바를 직접적으로 구현했다. 내 코드는 다음과 같다.
'query = "지역 desc로 apmandal 순서에서 geom을 선택;" 'ResultSet rs = st0.executeQuery 질의), ' ' rs.next(); 'string geomval = rs.getString (1) .toString();' 'string newquery = "테스트 (mname, geom) 값을 삽입한다 ('ZAHEERABAD ' ("insert"+ tel + "record");'이제 새로운 쿼리를 배웠다. (예 : "+ geomval +")); 당신에게서 .. 고마워. :) – shrivardhan