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

如何用java在Postgis数据库中存储几何点,java,postgresql,postgis,Java,Postgresql,Postgis,我试图将一个几何体对象存储到我的postgist数据库中,该数据库有一个带有几何体列的表。我从另一个带有几何列的表中得到了几何值,我打印了我以前得到的值,它是正确的。要存储几何体值,我使用下一个函数: static void insertaGeometria( Geometry geom, int idInstalacion) throws ClassNotFoundException, SQLException{ Connection congeom = conectarPG

我试图将一个几何体对象存储到我的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();    
    }
但我总是犯这样的错误:

org.postgresql.util.PSQLException:无法推断要用于的SQL类型 org.postgis.Point的一个实例。将setObject()与显式 类型值以指定要使用的类型

有人知道怎么储存吗(

提前感谢!

Java客户端。从中我看到了两个想法。尝试使用
PGgeometry
而不是
Geometry
类型来创建
Geometry
。然后,将几何体类型添加到连接
congeom

((org.postgresql.PGConnection)congeom).addDataType("geometry",Class.forName("org.postgis.PGgeometry"));

根据我的经验,我成功地使用这样的表达式添加了点(请注意,请求的迭代点是我自己的类):

使其工作的maven依赖项是

    <dependency>
        <groupId>net.postgis</groupId>
        <artifactId>postgis-jdbc</artifactId>
        <version>2.2.0</version>
        <exclusions>
            <exclusion>
                <!-- NOTE: Version 4.2 has bundled slf4j -->
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
            <exclusion>
                <!-- NOTE: Version 4.2 has bundled slf4j -->
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
            <exclusion>
                <!-- NOTE: Version 4.2 has bundled slf4j -->
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
            </exclusion>
        </exclusions>

net.postgis
postgis jdbc
2.2.0
org.slf4j
slf4j api
回写
回归经典
回写
回溯堆芯


请注意,您无需排除依赖项(这是为了我自己的兼容性而需要的)

如果发生jpa@bob-cac不确定(我不使用JPA);参见
    <dependency>
        <groupId>net.postgis</groupId>
        <artifactId>postgis-jdbc</artifactId>
        <version>2.2.0</version>
        <exclusions>
            <exclusion>
                <!-- NOTE: Version 4.2 has bundled slf4j -->
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
            <exclusion>
                <!-- NOTE: Version 4.2 has bundled slf4j -->
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
            <exclusion>
                <!-- NOTE: Version 4.2 has bundled slf4j -->
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
            </exclusion>
        </exclusions>