建立java应用程序,连接postgis数据库。并读取数据库中的空间信息。
时间: 2023-05-29 16:05:03 浏览: 146
首先,需要引入PostgreSQL JDBC驱动和PostGIS JDBC驱动。可以通过Maven或手动下载安装。
接下来,需要编写Java代码来连接PostGIS数据库和读取空间信息。以下是一个示例代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.postgis.Geometry;
import org.postgis.PGgeometry;
import org.postgis.Point;
public class PostGisApp {
public static void main(String[] args) throws SQLException {
String url = "jdbc:postgresql://localhost:5432/postgisdb";
String user = "postgres";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String query = "SELECT id, name, ST_AsText(geom) FROM spatial_table";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
PGgeometry geom = (PGgeometry) rs.getObject("geom");
Geometry geometry = geom.getGeometry();
if (geometry instanceof Point) {
Point point = (Point) geometry;
System.out.println("ID: " + id + ", Name: " + name + ", Point: " + point.getX() + "," + point.getY());
} else {
System.out.println("ID: " + id + ", Name: " + name + ", Geometry: " + geometry.toString());
}
}
rs.close();
stmt.close();
conn.close();
}
}
```
以上代码连接到名为“postgisdb”的PostGIS数据库,并从名为“spatial_table”的表中检索空间信息。使用ST_AsText函数将几何对象转换为文本表示形式。可以根据具体情况更改查询和输出格式。
确保在类路径中包括PostgreSQL JDBC驱动和PostGIS JDBC驱动,然后运行Java应用程序。
阅读全文