我正在使用sql2o将PostgreSQL行映射到java对象。
我的表格有POINT
类型的列和带有两个Double
的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
映射到两个Double
。
答案 0 :(得分:0)
我设法得到了我自己的问题的答案,这是代码:
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;
}
}