在MySQL中,可以使用LOAD DATA INFILE和LOAD DATA LOCAL INFILE两种方式导入文本文件中的数据到数据库表中,速度非常快。其中LOAD DATA INFILE使用的文件要位于MySQL所在服务器上,LOAD DATA LOCAL INFILE则使用的是客户端的文件。

LOAD DATA INFILE 'data.txt' INTO TABLE table_name;
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE table_name;

在PostgreSQL中也可以导入相同类型的文本文件,使用的是COPY命令:

COPY table_name FROM 'data.txt';

但是这个语句只能导入PostgreSQL所在服务器上的文件,要想导入客户端文件,就需要使用下面的语句:

COPY table_name FROM STDIN;

    public void copyFromFile(Connection connection, String filePath, String tableName) throws SQLException, IOException {FileInputStream fileInputStream = null;try {CopyManager copyManager = new CopyManager((BaseConnection)connection);fileInputStream = new FileInputStream(filePath);copyManager.copyIn("COPY " + tableName + " FROM STDIN", fileInputStream);} finally {if (fileInputStream != null) {try {fileInputStream.close();} catch (IOException e) {e.printStackTrace();}}}}

另外,还可以使用COPY table_name TO STDOUT来导出数据文件到本地,和上面的导入相反,可以用于数据库备份。此外,还支持导出一个SQL查询结果:
COPY (SELECT columns FROM table_name WHERE ……) TO STDOUT;

Java代码如下:

    public void copyToFile(Connection connection, String filePath, String tableOrQuery) throws SQLException, IOException {FileOutputStream fileOutputStream = null;try {CopyManager copyManager = new CopyManager((BaseConnection)connection);fileOutputStream = new FileOutputStream(filePath);copyManager.copyOut("COPY " + tableOrQuery + " TO STDOUT", fileOutputStream);} finally {if (fileOutputStream != null) {try {fileOutputStream.close();} catch (IOException e) {e.printStackTrace();}}}}

// 将本地d:/data.txt文件中的数据导入到person_info表中
copyFromFile(connection, "d:/data.txt", "person_info");
// 将person_info中的数据导出到本地文件d:/data.txt
copyToFile(connection, "d:/data.txt", "person_info");
// 将SELECT p_name,p_age FROM person_info查询结果导出到本地文件d:/data.txt
copyToFile(connection, "d:/data.txt", "(SELECT p_name,p_age FROM person_info)");

https://blog.csdn.net/xiao__gui/article/details/12090341

PostgreSQL:Java使用CopyManager实现客户端文件COPY导入相关推荐

  1. 【JavaWeb开发】使用java实现简单的Excel文件的导入与导出(POI)

    前言:在实际的开发中,我们经常需要用户在界面中输入大量重复且有规律的数据,但是一个表单一个表单的填写效率过慢,而且过多的表单也会给JavaWeb的业务逻辑开发带来不小的困扰,所以我们可以使用一个Exc ...

  2. JAVA通过Hutool解析CSV文件【导入即用,无需封装】

    JAVA通过Hutool解析CSV文件 ​ Java解析CSV方式有很多种方式[javaCSV(未更新),openCSV(apache)],这篇文章主要是用到Hutool工具类,能快速的解析读取,不需 ...

  3. Java服务端向客户端写文件_java实现客户端向服务器发送文件

    本文实例为大家分享了java实现客户端向服务器发送文件的具体代码,供大家参考,具体内容如下 服务器源代码: import java.io.BufferedReader; import java.io. ...

  4. java服务器客户端文件,客户端服务器文件传输Java

    这是我使用的方法,它使用套接字的输入和输出流来发送和接收文件,完成后,它将自动重新启动服务器并从客户端重新连接到服务器. 服务器代码: package app.server; import java. ...

  5. Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片

    文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...

  6. 【SpringBoot、java文件copy、Mybatis、SpringApplication】

    Spring Boot 整合 MyBatis 快速搭建 Web 开发环境 SpringBoot项目创建与整合mybatis Java文件copy拷贝的4种方式 小白学SpringBoot mybati ...

  7. java实现文件copy

    话不多说直接看代码: 方法1:直接利用FileInputStream,FileOutputStream来实现内容的copy public static void listDicTory(File sr ...

  8. PostgreSQL Java 开发者手册

    标签 PostgreSQL , Java , php , ruby , python , C 背景 转自 http://zetcode.com/db/postgresqljavatutorial/ 正 ...

  9. CentOS部署JAVA程序、安装Tomcat以及安装导入mysql文件的方法

    注意:由于流程太过于繁杂,且坑多,这里只保留关键步骤,具体小问题百度! ________________________ 先进入CentOS6.8图形化界面(如阿里云没有默认的图形化界面,自己去安装h ...

最新文章

  1. Seaborn可视化图像调整图像大小(figure size)方法实战(Adjust the Figure Size)
  2. 115页Slides带你领略深度生成模型全貌(附PPT)
  3. 计算机视觉开源库OpenCV之利用开操作(Opening Operation)修复受损照片方法
  4. 第一篇:Mysql数据类型
  5. 【组原】广州大学计算机组成原理考试部分题+复习资料(2020-2021)
  6. 成熟就是深谙世故却不世故
  7. C# ASP.NET MVC 配置允许跨域访问
  8. grafana的前端技术_Grafana开发环境搭建
  9. 类型②typeof 操作符
  10. openwrt源码下载移植
  11. 《时空幻境》Braid.v1.010.r2-RES-patch
  12. uni-app、小程序项目分包经验之谈与天坑异常:RangeError: Maximum call stack size exceeded
  13. 找出不大于n的最大质数
  14. STK入门级模拟卫星轨道
  15. Shell 编程三剑客
  16. Monte Carlo tree search 学习
  17. Android属性ems
  18. A5SHB,A5SHB芯片三极管规格书
  19. 循环语句—for/while/do...while
  20. 密码学Kerberos协议理解

热门文章

  1. 前端部分面试题整理,欢迎补充
  2. 平民架构的春天——UCloud数据方舟实战记
  3. ACM-ICPC历届世界总冠军名单1977-2015
  4. stm32时钟树讲解
  5. python 多线程日志切割+日志分析
  6. 在Server 2003上部署IIS+PHP+MySQL配置清单
  7. Closure Compiler 使用
  8. iOS处理高并发量的数据请求和数据集合的对应关系
  9. UIAlertAction的用法
  10. 数据连接池的工作机制是什么?