代码之家  ›  专栏  ›  技术社区  ›  Sean Sheehy

从MySQL数据库中提取BLOB多边形?

  •  2
  • Sean Sheehy  · 技术社区  · 9 年前

    我正在开发一个使用jsf在数据库中存储多边形的web应用程序。我可以使用 多边形 中的数据类型 MySQL数据库 ,然后多边形显示为 斑点 在数据库中。

    然而,我不确定如何使用JDBC中的行集访问每行中的多边形。理想情况下,我希望将此数据从POLYGON BLOB转换为 LatLng阵列 .

    我知道它可以作为 工作 使用MYSQL

    (SELECT * ST_AsText(markers) FROM paddock) 
    

    但我不知道如何在Java中访问它。如果有人有什么想法,请随时分享,谢谢。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Sean Sheehy    9 年前

    我找到了问题的答案。我使用了上面返回字符串值的MySQL语句,并使用了java正则表达式来提取坐标

                        Polygon polygon = new Polygon();
                        String value = rs.getString(1);
                        String valuereal = value.replaceAll("[^0-9 .,]+", "");
                        ArrayList<String> myList = new ArrayList<String>(Arrays.asList(valuereal.split(",")));
    

    上面的正则表达式只允许MySQL中BLOB POLYGON类型的数字、点和逗号,然后使用拆分将其存储在字符串数组中。