java PostGIS jdbc sql查询
我正在尝试将postgis扩展用于postgresql数据库,但无法以我希望的方式运行它。 我正在使用postgis 2.1.6(从源代码定制构建)和postgresql-9.4-1201。jdbc4。罐子 (还有另外一个带有hibernate配置的项目,但它可能与本例有关)
我有一些测试代码(主要来自postgis示例文件夹):
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!");
}
}
当我跑步时,我会说“成功!”(对于第一个if)和“PGgeometry failed!”(用于第二个if)。 不同之处在于列(::geometry)的显式类型
这是正常的,还是配置有问题? 如果这是正常的,那么hibernate是否应该使用类型转换生成sql查询
# 1 楼答案
哦,那是个愚蠢的错误。数据库里有地理栏。使用“几何体”类型,一切正常。 或者如果更改驱动器配置。属性和添加行:
它也可以使用地理类型(或者在db中使用几何体类型)