文档章节

java postgresql csv文件数据导入

无知的小孩
 无知的小孩
发布于 2018/07/25 10:56
字数 298
阅读 92
收藏 0

1.使用jar驱动自带的CopyManager(我这里使用的是postgresql-9.4.1212.jre7.jar)

public class PGPool {  
        PGPoolingDataSource source = new PGPoolingDataSource();  
        public PGPool(){  
            //PG database server name  
            source.setServerName("数据库ip");  
            //PG db port number  
            source.setPortNumber(端口);  
            //PG database name  
            source.setDatabaseName("数据库");  
            source.setUser("账号");  
            source.setPassword("密码");  
            source.setMaxConnections(3);  
        }  
      
        public Connection getConn(){  
            try{  
                return source.getConnection();  
            }catch (Exception e){  
                e.printStackTrace();  
            }  
            return null;  
        }  
    }
    
    @Test 
    public void testCopy() {
        String fileUploadSavePath="C:\\Users\\Administrator.SKY-20170224BTQ\\Desktop\\";
        String savedFileName="bendigongcan(1).csv";
        String tableName = "smartinsight.test_tpm";
        FileInputStream fileInputStream = null;  
        try {  
            try {
                PGPool pool = new PGPool();
                CopyManager copyManager = new CopyManager((BaseConnection)pool.getConn().getMetaData().getConnection());  
// 程序csv文件路径                

fileInputStream = new FileInputStream(fileUploadSavePath+savedFileName);  

//如果导入字段与文件中完全相同可以不指定("copy tablename FROM STDIN delimiter ',' csv header encoding 'GBK'")
                String sql = "COPY " + tableName + "(province,city,region,cgi,chinesename,covertype,scenario,iscore,iscounty,istown,isvillage,iscityproper,vendor,flag,earfcnflag,isimportantscenario,admin_area,large_scenario,small_scenario,grid,optiroom,islivearea,ishospital,gaosuname,gaotiename,elevate,iszbcj,isjtsn) FROM STDIN delimiter ',' csv header encoding 'GBK'";//指定分隔符和编码 默认是utf-8程序编码
                log.debug(sql);
                copyManager.copyIn(sql, fileInputStream);
            } catch (SQLException | IOException e) {
                e.printStackTrace();
            }  
        } finally {  
            if (fileInputStream != null) {  
                try {  
                    fileInputStream.close();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }

2.在数据库端命令执行本地文件

copy test_tpm from 'C:\\\\Users\\\\Administrator\\\\Desktop\\sshtest\\\\bendigongcan(1).csv' 
delimiter ',' csv header encoding 'GBK'; 

© 著作权归作者所有

共有 人打赏支持
无知的小孩
粉丝 1
博文 70
码字总数 19034
作品 0
贵阳
后端工程师
私信 提问
DBeaver 3.6.7 发布,数据库管理工具

DBeaver 3.6.7 发布了,以下是值得关注的内容: PostgreSQL: function-based indexes support PostgreSQL: columns search added PostgreSQL: triggers source viewer fixed PostgreSQL: for......

oschina
2016/05/10
1K
5
PostgreSQL jdbc 错误代码映射(SQLSTATE)

标签 PostgreSQL , SQLSTATE , 错误代码 , org.postgresql.util.PSQLState 背景 Does such a class enumerating the PostgreSQL error codes already exist? Yes, it does: org.postgresql.u......

德哥
2018/10/05
0
0
ETL for Oracle to PostgreSQL 1 - Oracle Data Integrator (ODI)

标签 PostgreSQL , Oracle , ETL , Oracle Data Integrator , ODI 背景 原文 https://www.cdata.com/kb/tech/postgresql-jdbc-odi.rst 正文 ETL PostgreSQL in Oracle Data Integrator This ......

德哥
2018/05/06
0
0
JAVA存取PostgreSQL二进制类型bytea

经过测试:JAVA存取PostgreSQL的bytea类型均存在内存的限制问题(存取的数据过大会出现out of memory内存溢出的问题),EnterpriseDB对此做了优化。 取PostgreSQL中的bytea,并存储到硬盘上....

YuanyuanL
2013/08/09
0
0
iDempiere 使用指南 绿色版一键启动测试环境

Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idempiere.org/zh iDempiere 中文社区www.idempiere.org.cn 本文档说明如何......

蓝色布鲁斯
2014/11/26
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

四、RabbitMQ3.7在CentOS7下的安装

安装依赖 sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git 创建yum源 vi /etc/yum.repos.d/rabbitmq-erlang.repo [......

XuePeng77
今天
2
0
android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
4
0
浅谈mybatis的日志适配模式

Java开发中经常用到的日志框架有很多,Log4j、Log4j2、slf4j等等,Mybatis定义了一套统一的日志接口供上层使用,并为上述常用的日志框架提供了相应的适配器。有关适配器模式例子可以参考 设计...

算法之名
昨天
13
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
昨天
3
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部