openGauss学习笔记-165 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-通过本地文件导入导出数据

文章目录

    • openGauss学习笔记-165 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-通过本地文件导入导出数据
      • 165.1 示例1:通过本地文件导入导出数据

openGauss学习笔记-165 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-通过本地文件导入导出数据

165.1 示例1:通过本地文件导入导出数据

在使用JAVA语言基于openGauss进行二次开发时,可以使用CopyManager接口,通过流方式,将数据库中的数据导出到本地文件或者将本地文件导入数据库中,文件格式支持CSV、TEXT等格式。

样例程序如下,执行时需要加载openGauss的JDBC驱动。

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.SQLException; 
import org.opengauss.copy.CopyManager; 
import org.opengauss.core.BaseConnection;public class Copy{ public static void main(String[] args) { String urls = new String("jdbc:opengauss://localhost:8000/postgres"); //数据库URL String username = new String("username");            //用户名 String password = new String("passwd");             //密码 String tablename = new String("migration_table"); //定义表信息 String tablename1 = new String("migration_table_1"); //定义表信息 String driver = "org.opengauss.Driver"; Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(urls, username, password);         } catch (ClassNotFoundException e) { e.printStackTrace(System.out); } catch (SQLException e) { e.printStackTrace(System.out); } // 将表migration_table中数据导出到本地文件d:/data.txt  try {copyToFile(conn, "d:/data.txt", "(SELECT * FROM migration_table)");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}    //将d:/data.txt中的数据导入到migration_table_1中。try {copyFromFile(conn, "d:/data.txt", tablename1);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}  // 将表migration_table_1中的数据导出到本地文件d:/data1.txt  try {copyToFile(conn, "d:/data1.txt", tablename1);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}        } public static 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();  }  }  }  }  public static 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();  }  }  }  }  
}

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/287080.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一种基于IWR6843雷达的跌倒检测系统的设计和实现(TI文档)

摘要 随着年龄增长,人体各项生理机能退化严重,老年人很容易发生跌倒,导致身体受到严重的伤害。近年来,随着国内人口老龄化越来越严重,主要针对老年人的跌倒检测系统正受到越来越多的关注。和常用的加速度传感器和视觉技…

五个IO模型的总结+同步异步

IO操作是同步还是异步,关键看数据在内核空间与用户空间的拷贝过程,也就是阶段二来判断是同步还是异步。

vue2 生命周期基本使用

基础介绍 Vue.js 提供了丰富的生命周期钩子函数,开发者可以通过这些钩子函数来控制组件在不同状态下的行为。Vue 组件的生命周期是指从组件实例化、初始化、渲染、更新到销毁的整个过程。 Vue 组件的生命周期钩子函数如下: beforeCreate: 在实例创建之前…

项目中webpack优化配置(持续更新)

项目中webpack优化配置 1. 开发效率, 体验 DLL(开发过程中减少构建时间和增加应用程序的性能) 使用 DllPlugin 进行分包,使用 DllReferencePlugin(索引链接) 对 manifest.json 引用,让一些基本不会改动的代码先打包…

创建个人网站(二)前端主页设计和编写一(太阳移动)

前言 以下内容纯纯当乐子来看就行,知识分享一下这样设计的原因,想看正文直接见下一节 为什么创建个人网站一之后几天没有动静了呢,一个是家里有事实在比较忙,第二个原因是没想到主页要设计成什么样,知道前两天问我姐什…

基于“Galera+MariaDB”搭建多主数据库集群的实例

1、什么是多主数据库集群 多主数据库集群是一种数据库集群架构,每个节点都可以接收写入操作和读取操作,并且通过心跳机制同步数据,保证数据一致性和高可用性。因多主数据库集群每个节点都可以承担读写操作,因此它可以充分利用各个…

【兔子王赠书第13期】AI绘画实战:Midjourney从新手到高手

文章目录 写在前面AI绘画推荐图书一本书读懂AI绘画关键点内容简介作者简介 推荐理由粉丝福利写在后面 写在前面 如今AI技术已经进入了我们的日常学习生活中,如何用一本书轻松玩转AI绘画,领略无限艺术可能呢? AI绘画 AI绘画是指利用人工智能…

基于SSM的马病管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

yolov5障碍物识别-雪糕筒识别(代码+教程)

简介 这是一个检测交通锥并识别颜色的项目。我使用 yolov5 来训练和检测视锥细胞。此外,我使用 k 均值来确定主色,以对锥体颜色进行分类。目前,支持的颜色为红色、黄色、绿色和蓝色。其他颜色被归类为未知。 数据集和注释 我使用了一个自收…

定位咨询:企业市场竞争中的定海神针

什么是定位咨询?定位咨询能给企业带来什么帮助?在现代市场的激烈竞争中,定位咨询不仅是企业区分自己的重要工具,更是它们赢得市场份额的关键。以下是定位咨询的定义和几个核心方面,笔者将列举具体案例说明其重要性和实用性。 定位咨询的简单…

【JUC】三十一、AQS源码

📕前置笔记:【AQS核心概念与核心类】 文章目录 1、ReentrantLock与AQS类的联系2、lock方法3、acquire方法4、源码分析Demo背景案例5、tryAcquire方法6、addWaiter方法7、acquireQueued方法8、unlock方法9、cancelAcquire方法 AQS是JUC的基石,…

自动化测试流程(超详细整理)

最近很多小伙伴问我自动化测试到底该怎么做?流程是什么样的?在每个阶段都需要注意什么?本文也就主要从自动化测试的基本流程入手,对面试自动化测试工程师的同学会有不少帮助。对于在职的朋友,也可以参考此流程&#xf…