这篇博文是在参加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 (); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。