line导入postgis数据库

1、创建新的数据库a

      su postgres

      psql -p 5432

      create database a with owner dbuser(新建数据库a)

      Crtl+z回退

      psql -U dbuser -d a

      CREATE EXTENSION postgis

      CREATE EXTENSION postgis_topology

      CREATE EXTENSION pgrouting

2、QGIS绑定数据库a

      修改导入文件:

<!DOCTYPE connections>
<qgsPgConnections version="1.0">
    <postgis port="5432" saveUsername="true" password="dbuser" savePassword="true" sslmode="1" service="" username="dbuser" host="host名" database="a" name="a" estimatedMetadata="false"/>
</qgsPgConnections>

     导入到QGIS

3、line导入数据库a

      模式:public 表格:tbl_path 主键:id

      ALTER TABLE tbl_path ADD COLUMN "source" integer;

      ALTER TABLE tbl_path ADD COLUMN "target" integer;

      SELECT pgr_createTopology('tbl_path', 0.000002, 'geom', 'gid');

      ALTER TABLE tbl_path ADD COLUMN "length" float8;

      UPDATE tbl_path set length=ST_Length(geom);

PostGIS中,`org.postgresql.jdbc`通常是指PostgreSQL JDBC驱动程序,它是连接PostgreSQL数据库并执行SQL操作的一个关键组件。如果你想要使用这个库来导入数据到PostGIS,你需要按照以下步骤进行: 1. **添加JDBC驱动**: 首先,确保你已经在项目中添加了PostgreSQL JDBC驱动。如果你使用Maven,可以在pom.xml文件中加入依赖,例如: ```xml <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.20</version> <!-- 更新到最新版本 --> </dependency> ``` 2. **连接数据库**: 使用JDBC API创建一个连接到PostgreSQL数据库的Connection对象。这需要数据库URL、用户名和密码。例如: ```java String url = "jdbc:postgresql://localhost:5432/mydatabase"; String user = "myusername"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. **创建Statement或PreparedStatement**: 创建一个Statement对象用于执行一般的SQL查询,或者PreparedStatement对象用于预编译,提高安全性(防止SQL注入)。 4. **导入数据**: 对于导入数据,你可以使用INSERT INTO语句,比如将CSV或Excel文件的内容插入地理空间表,可以使用COPY命令或者通过读取文件然后动态构造SQL来插入。例如,导入CSV文件: ```java File csvFile = new File("data.csv"); BufferedReader br = new BufferedReader(new FileReader(csvFile)); String line; while ((line = br.readLine()) != null) { // 解析每行数据并构建INSERT SQL String sql = "INSERT INTO my_table (geom_column, other_columns) VALUES ('" + geometryFromLine(line) + "', ...)"; PreparedStatement pstmt = conn.prepareStatement(sql); // 执行SQL pstmt.executeUpdate(); } ``` 5. **关闭资源**: 最后别忘了关闭所有打开的资源,如Connection、Statement或PreparedStatement: ```java br.close(); pstmt.close(); conn.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值