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

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

时间:2023-12-19 22:32:17浏览次数:49  
标签:String try printStackTrace 导入 IOException catch new openGauss 数据

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 block
          e.printStackTrace();
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }    
      //将d:/data.txt中的数据导入到migration_table_1中。
      try {
          copyFromFile(conn, "d:/data.txt", tablename1);
      } catch (SQLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }  

      // 将表migration_table_1中的数据导出到本地文件d:/data1.txt  
      try {
          copyToFile(conn, "d:/data1.txt", tablename1);
      } catch (SQLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.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();  
              }  
          }  
      }  
  }  
}

标签:String,try,printStackTrace,导入,IOException,catch,new,openGauss,数据
From: https://blog.51cto.com/shuchaoyang/8895396

相关文章

  • 大数据 云计算
     包邮正品‖决战大数据:驾驭未来商业的利器车品觉数据之巅 [交易快照]¥45.901申请售后投诉卖家¥21.00(含运费:¥0.00) 交易成功订单详情双方已评 包邮正品‖2013中国好书大数据时代:生活、工作与思维的大变革 [交易快......
  • 数据备份软件GoodSync
    为什么需要数据备份软件?重要的数据无价,而一块机械硬盘的理论使用寿命是5-10年。一块盘里的数据更改,希望能及时、正确,备份到另外一块硬盘里。只想备份更改,不想全盘备份。毕竟有的情况下会有动辄几十TB的数据。那能不能使用云服务?免费云服务的速度并不理想。部分资源可能会......
  • R语言群组变量选择、组惩罚group lasso套索模型预测分析新生儿出生体重风险因素数据和
    原文链接:http://tecdat.cn/?p=25158原文出处:拓端数据部落公众号 本文拟合具有分组惩罚的线性回归、GLM和Cox回归模型的正则化路径。这包括组选择方法,如组lasso套索、组MCP和组SCAD,以及双级选择方法,如组指数lasso、组MCP。还提供了进行交叉验证以及拟合后可视化、总结和预测的实......
  • matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类|附代码数据
    全文下载链接:http://tecdat.cn/?p=19751本示例说明如何使用长短期记忆(LSTM)网络对序列数据进行分类。最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出。要训练深度神经网络对序列数据进行分类,可以使用LSTM网络。LSTM网络使您可以将序列数据输入网络,并根据序列......
  • python进行二进制数据处理的方法
    方法一:使用struct模块,特点轻量化,简单易用。缺点就是可读性不是太好,使用小数据临时使用一下,对于大量的数据解析,写起来比较繁琐,显得有点力不从心。importstructdata=b'\x92\xaa\xbb\xcc\x11\x22\x33\x44'a,b,c,d,e=struct.unpack(">BBBBI",data)print("a=0x%xb=0x%xc=......
  • python中导入模块/包的几种方式
    一、模块的导入方式模块就是.py类型的Python文件导入时不需要.py后缀,直接导入文件名即可1.利用import直接导入:语法:importmodule_name使用方式:module_name.class_name或者module.func_name2.利用import导入模块并设置一个别名语法:importmodule_nameasXXX使用方式:XXX.cl......
  • 使用网关采集modbus设备数据转换成profinet协议的方案
    1 方案描述这个方案是使用vfbox网关采集modbus设备的数据,然后转换成profinet协议发送给平台。这种转换方法只需要简单的配置网关参数,不需要进行软件编程,很方便的就把modbus数据转换成了profinet协议。在电脑上通过软件配置网关参数,告诉网关要采集的数据的寄存器地址,然后在配置一下......
  • 从零开始构建报警中心:part08 数据库链接与验证
    处理了model与schema就可以进行数据的实际操作了。flask应用可以通过flask-sqlachemy进行ORM操作。APP与数据库绑定定义flask应用,对该应用进行配置,绑定数据库链接信息,并初始化DB,相关代码如下app.py这是整个系统的入口,后续将添加登入登出(flask-login),SSO接入,蓝图,以及API接入fromfla......
  • MySQL数据库故障恢复方案
    针对以上问题,技术部门拟定了恢复方案,内容如下:1、故障类型分类:在此次故障中,由于未对生产环境进行备份也未开启binlog日志,无法直接还原数据库,属于典型表内mysql-delete数据误删除。2、故障分析与可行性方案制定:对于mysqlinnodb误删除导致记录丢失的恢复方案有三种,分别是备份还原、......
  • PHP获取访问者ip,判断是否属于数据库中可以访问的ip段
    理解了。下面是一个例子,演示如何使用PHP获取访问者IP,并与数据库中的IP地址段进行比较。在这个例子中,我将使用IP地址和子网掩码的方式存储IP段,同时对比IP地址是否在指定的范围内。数据库表结构:CREATETABLEip_access(idINTAUTO_INCREMENTPRIMARYKEY,netw......