如何使用java在Postgis数据库中存储几何点

Ric*_*alo 8 java postgresql postgis

我正在尝试将几何对象存储到我的postgist数据库中,该数据库有一个带有几何列的表.我从另一个带有几何列的表中获取了几何值,然后打印出我之前得到的值,这没关系.要存储几何值,我使用下一个函数:

static void insertaGeometria( Geometry geom, int idInstalacion) throws ClassNotFoundException, SQLException{

        Connection congeom = conectarPGA();

        String geomsql ="INSERT INTO georrepositorio.geometria(id, point) VALUES (?,?)";
        PreparedStatement psSE= congeom.prepareStatement(geomsql);
        psSE.setInt(1, idInstalacion);
        psSE.setObject(2, geom);    

        psSE.execute();
        psSE.close();   
        congeom.close();    
    }
Run Code Online (Sandbox Code Playgroud)

但我总是得到这个错误:

org.postgresql.util.PSQLException:无法推断用于org.postgis.Point实例的SQL类型.使用带有显式Types值的setObject()来指定要使用的类型.

有谁知道如何存储它?='(

提前致谢!

Mik*_*e T 6

请参阅 Java客户端的手册.从这里我看到两个想法.尝试使用PGgeometry而不是Geometry类型geom.然后,将几何类型添加到连接congeom:

((org.postgresql.PGConnection)congeom).addDataType("geometry",Class.forName("org.postgis.PGgeometry"));
Run Code Online (Sandbox Code Playgroud)