java实现批量导入. csv文件到mysql数据库

  

这篇博文是在参加CCF时导入. csv文件时自己总结的,虽然NavicatForMysql可以导入. csv文件,可是当我导入的时候不知道是文件太大还是什么原因,总是会出现失败。然后就用java写了一个批量导入数据的类去导入该。csv文件,这里也没有考虑代码的结构,只是为了快速的完成这个工作,做一个总结。
  

        包com.cqu.price_prediction.farm;      进口java.io.File;   进口java.io.FileNotFoundException;   进口java.sql.Connection;   进口java.sql.DriverManager;   进口java.sql.PreparedStatement;   进口java.sql.SQLException;   进口java.util.Scanner;      公开课读   {   私有静态连接欺诈;      公共静态void main (String [] args)抛出FileNotFoundException, SQLException异常   {      长时间的开始时间=System.currentTimeMillis ();   文件文件=新文件(“H:农产品/数据/farming.csv”);      扫描仪在=新扫描仪(文件);      getConnect ();   System.out.println(“数据库连接成功”);   insert_data(的);      长EndTime=System.currentTimeMillis ();   长时间=(EndTime -开始时间)/1000;      system . out。println(“导入数据共用时:“+时间);   }      私有静态孔隙insert_data(扫描仪)抛出SQLException异常   {   int数=0;   字符串sql=安迦肱┮?省、市场类型、名称、标准、面积、颜色、单位,minprice, avgprice, maxprice, entertime,时间)”   +”值(& # 63;& # 63;& # 63;,& # 63;,& # 63;,& # 63;,& # 63;,& # 63;,& # 63;,& # 63;,& # 63;,& # 63;,& # 63;)”;      con.setAutoCommit(假);   PreparedStatement pstmt=con.prepareStatement (sql);   in.next ();   而(in.hasNext ())   {   字符串temp1=in.nextLine ();   String [] temp=temp1.split (", ");      如果(temp.length & lt;13)   继续;      如果(temp.length==13)   {   pstmt。setString(1、临时[0]);   pstmt。setString(2,临时[1]);   pstmt。setString(3、临时[2]);   pstmt。setString(4、临时[3]);   pstmt。setString(5、临时[4]);   pstmt。setString(6、临时[5]);   pstmt。setString(7、临时[6]);   pstmt。临时[7]setString(8日);   pstmt。setString(9日临时[8]);   pstmt。setString(10、临时[9]);   pstmt。setString(11日临时[10]);   pstmt。setString(12日临时[11]);   pstmt。临时[12]setString(13日);   }      pstmt.addBatch ();      数+ +;      如果(count==20000)   {   数=执行(pstmt数);   }   }   pstmt.executeBatch ();   con.commit ();      }      公共静态int执行(PreparedStatement pstmt, int数)抛出SQLException异常   {      pstmt.executeBatch ();   con.commit ();   返回0;      }      私有静态孔隙getConnect ()   {   试一试   {   forname(“com.mysql.jdbc.Driver”);   反对=DriverManager.getConnection (   " jdbc: mysql://localhost: 3306/agricultural_price_prediction& # 63; useUnicode=true& characterEncoding=utf8& useServerPrepStmts=false& rewriteBatchedStatements=true”,   “根”,“123456”);   }   抓住(ClassNotFoundException | SQLException e)   {//TODO自动生成的catch块   e.printStackTrace ();   }   }      }      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

java实现批量导入. csv文件到mysql数据库