【问题标题】:How to retrieve a java object from table that has Geometry type using sql2o如何使用 sql2o 从具有几何类型的表中检索 java 对象
【发布时间】:2016-08-27 21:07:18
【问题描述】:

我正在使用 sql2o 将 PostgreSQL 行映射到 java 对象。

我有一个表,其中有一列 POINT 类型和一个带有两个 Doubles 的 java 模型,它们都代表纬度和经度。

为了在数据库中保存一个对象,我正在做这样的事情:

public void save()
{
    try(Connection con = DB.sql2o.open()) {
        String sql = "INSERT INTO my_table(geom) VALUES (SetSRID(CAST(:geom AS geometry), 4326));";
        con.createQuery(sql)
            .addParameter("geom", "POINT(" + this.latitude + " " + this.longitude+ ")")
            .executeUpdate();
    }
}

但现在我想检索我存储的对象。我怎样才能做到这一点?如何将POINT 映射到两个Doubles。

【问题讨论】:

  • 请先做你的工作再问,如果有问题,请展示你的努力

标签: java postgresql postgis sql2o


【解决方案1】:

我设法得到了我自己问题的答案,这里是代码:

public List<MyModel> models()
{
    try(Connection con = DB.sql2o.open()) {
        String sql = "SELECT ST_X(geom) AS latitude, ST_Y(geom) AS longitude FROM my_table;";
        List<MyModel> models = con.createQuery(sql)
            .executeAndFetch(MyModel.class);

        return models;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多