前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何把.csv文件导入到mysql中以及如何使用mysql 脚本中的load data快速导入

如何把.csv文件导入到mysql中以及如何使用mysql 脚本中的load data快速导入

作者头像
用户5166556
发布2019-04-16 12:03:54
5.7K0
发布2019-04-16 12:03:54
举报

 1, 其中csv文件就相当于excel中的另一种保存形式,其中在插入的时候是和数据库中的表相对应的,这里面的colunm 就相当于数据库中的一列,对应csv表中的一列。

2,在我的数据库表中分别创建了两列A ,B属性为varchar。

3,在这里面中,表使用无事务的myISAM 和支持事务innodb都可以,但是MyISAM速度较快。

4, String sql = "load data infile 'E://test.csv' replace into table demo fields terminated by ',' enclosed by '\\'' lines terminated by '\\r\\n'  (`A`,`B`) "; 这句话是MySql的脚本在java中的使用,这个插入速度特别快,JDBC自动解析该段代码进行数据的读出,并且插入到数据库。要注意在load data中转义字符的使用。 如果要使用load

data直接进行执行一下这句话,(不过要记得更改成自己的文件名  和 表名)就可以把文件中的内容插入,速度特别快。值得一试哦

下面是我给出的一段最基本的 通过io进行插入的程序,比较详细。

 package com.util.user; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class OfChangeCSVToMysql { /**  * @author clq  */ public static void main(String[] args) {         try {               long start = System.currentTimeMillis();              Class.forName("com.mysql.jdbc.Driver");              Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/girlandboy?rewriteBatchedStatements=true","root","1234");              conn.setAutoCommit(false);              List<String> listData = readFile("E://test.csv");//read a file return every line                for(String list:listData){                    System.out.println(list);                /*                *                in the csv file default splited with ',',every column to the database table's column                */                 String []column = list.split(",");                //The 'A' is the column in the csv,and in the database table                          if(column[0].trim().equalsIgnoreCase("A")){                      continue;                  }                 String sql = "insert into demo(A, B) values('"+column[0]+"','"+column[1]+"')";                PreparedStatement  pstmt = conn.prepareStatement(sql);                pstmt.execute();                 / pstmt.addBatch()//this is the batch       }             / /    pstmt.executeBatch();                     conn.commit();                  System.out.println(System.currentTimeMillis() - start);                 } catch (ClassNotFoundException e) {                 e.printStackTrace();               } catch (SQLException e) {               e.printStackTrace();             } catch (IOException e) {              e.printStackTrace();       }   }    public static List<String> readFile(String filePathAndName)throws IOException {

FileInputStream fis = new FileInputStream(filePathAndName); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); LineNumberReader lnr = new LineNumberReader(br); List<String> returnValue = new ArrayList<String>(); int cnt = 0; while (true) { cnt++; String tempStr = lnr.readLine(); if (tempStr == null) break; if (tempStr.length() < 2) continue; returnValue.add(tempStr); } lnr.close(); br.close(); isr.close(); fis.close(); return returnValue; }

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年04月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档