2015-03-22 2 views
0

Я пытаюсь использовать расширение postgis для базы данных postgresql и не могу заставить его работать так, как хотелось бы. Я использую postgis 2.1.6 (custome build from source) и postgresql-9.4-1201.jdbc4.jar (есть дополнительный проект с конфигурацией спящего режима, но, вероятно, он подходит для этого случая).PostGIS jdbc sql query

У меня есть тестовый код (в основном из PostGIS, например, папку): "! PGgeometry успешно"

String dburl="jdbc:postgresql://localhost/mapwebcatalog"; 
Connection conn = DriverManager.getConnection(dburl, dbuser, dbpass); 
Statement stat = conn.createStatement(); 

{ 
ResultSet rs = stat.executeQuery("SELECT raw_data_file_points::geometry from raw_data_file_area"); 

rs.next(); 
result = (PGobject) rs.getObject(1); 
if (result instanceof PGgeometry) { 
    System.out.println("PGgeometry successful!"); 
} else { 
    System.out.println("PGgeometry failed!"); 
} 
} 

{ 
ResultSet rs = stat.executeQuery("SELECT raw_data_file_points from raw_data_file_area"); 
rs.next(); 
result = (PGobject) rs.getObject(1); 
if (result instanceof PGgeometry) { 
    System.out.println("PGgeometry successful!"); 
} else { 
    System.out.println("PGgeometry failed!"); 
} 
} 

Когда я бегу, я получаю (для первого, если) и «PGgeometry failed!» (для второго, если). И разница только в явном типе для столбца (:: geometry).

Это нормально, или что-то не так с конфигурацией? Если это нормально и как это должно быть, нужно спящий генерировать SQL-запрос с типом casting?

ответ

0

Och, это была глупая ошибка. У меня есть столбец географии в базе данных. С геометрическим типом все работает отлично. или если изменение driverconfig.properties и добавьте строку:

datatype.geography=org.postgis.PGgeometry 

он будет работать с географией типа, а также (или использовать тип геометрии в дБ).

Смежные вопросы