java - 使用 JDBC 在 PostgreSQL 中批量插入

标签 java postgresql batch-file jdbc

我想使用 JDBC 将文件插入到 postgresql 中。 我知道要使用以下命令,但下载的文件未使用分隔符(“|”或“,”)进行解析

   Filereader fr = new FileReader("mesowest.out.txt");
   cm.copyIn("COPY tablename FROM STDIN WITH DELIMITER '|'", fr);

我的文件如下所示:

ABAUT  20131011/0300      8.00    37.84  -109.46  3453.00    21.47     8.33   241.90   
ALTU1  20131011/0300      8.00    37.44  -112.48  2146.00 -9999.00 -9999.00 -9999.00 
BDGER  20131011/0300      8.00    39.34  -108.94  1529.00    43.40     0.34   271.30     
BULLF  20131011/0300      8.00    37.52  -110.73  1128.00    56.43     8.07   197.50    
CAIUT  20131011/0300      8.00    38.35  -110.95  1381.00    54.88     8.24   250.00    
CCD    20131011/0300      8.00    40.69  -111.59  2743.00    27.94     8.68   285.40

所以我的问题是..是否需要在该文件中附加分隔符以使用 jdbc 将其推送到数据库中?

最佳答案

来自 postgres 文档

分隔符:分隔文件每行(行)内的列的单个字符。文本模式下默认为制表符,CSV 模式下默认为逗号。

您的数据似乎是制表符分隔的。因此使用默认值应该可以。

Filereader fr = new FileReader("mesowest.out.txt");
cm.copyIn("COPY tablename FROM STDIN", fr);

关于java - 使用 JDBC 在 PostgreSQL 中批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19351802/

相关文章:

Java和字符串拆分

java - 如何转义字符串以存储在 JSON 中

java - 对我的客户端 Java 程序进行多线程处理

sql - 获取包含特定列字段的数据库表列表?

Windows 关机计时器结合中止计时器

java - 将预先编写的 SpringMVC + Hibernate 部署到 AWS

sql - 查找下一行的时差

postgresql - 在 PostgreSQL 查询的多个函数调用中重复使用硬编码值

powershell - 将Powershell代码导入.bat脚本

python - 嵌套的 for 循环,设置变量和 if else 在批处理脚本中