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

 更新时间:2020年08月27日 11:39:27   作者:Ma_Jack  
这篇文章主要为大家详细介绍了java实现批量导入.csv文件到mysql数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

package com.cqu.price_prediction.farm;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
 
public class Read
{
 private static Connection con;
 
 public static void main(String[] args) throws FileNotFoundException, SQLException
 {
 
 long startTime = System.currentTimeMillis();
 File file = new File("H:/AgriculturalProduct/data/farming.csv");
 
 Scanner in = new Scanner(file);
 
 getConnect();
 System.out.println("数据库连接成功");
 insert_data(in);
 
 long EndTime = System.currentTimeMillis();
 long time = (EndTime - startTime) / 1000;
 
 System.out.println("导入数据共用时:" + time);
 }
 
 private static void insert_data(Scanner in) throws SQLException
 {
 int count = 0;
 String sql = "insert into farming (province,market,type,name,standard,area,color,unit,minprice,avgprice,maxprice,entertime,time)"
 + "values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
 
 con.setAutoCommit(false);
 PreparedStatement pstmt = con.prepareStatement(sql);
 in.next();
 while (in.hasNext())
 {
 String temp1 = in.nextLine();
 String[] temp = temp1.split(",");
 
 if (temp.length < 13)
 continue;
 
 if (temp.length == 13)
 {
 pstmt.setString(1, temp[0]);
 pstmt.setString(2, temp[1]);
 pstmt.setString(3, temp[2]);
 pstmt.setString(4, temp[3]);
 pstmt.setString(5, temp[4]);
 pstmt.setString(6, temp[5]);
 pstmt.setString(7, temp[6]);
 pstmt.setString(8, temp[7]);
 pstmt.setString(9, temp[8]);
 pstmt.setString(10, temp[9]);
 pstmt.setString(11, temp[10]);
 pstmt.setString(12, temp[11]);
 pstmt.setString(13, temp[12]);
 }
 
 pstmt.addBatch();
 
 count++;
 
 if (count == 20000)
 {
 count = execute(pstmt, count);
 }
 }
 pstmt.executeBatch();
 con.commit();
 
 }
 
 public static int execute(PreparedStatement pstmt, int count) throws SQLException
 {
 
 pstmt.executeBatch();
 con.commit();
 return 0;
 
 }
 
 private static void getConnect()
 {
 try
 {
 Class.forName("com.mysql.jdbc.Driver");
 con = DriverManager.getConnection(
  "jdbc:mysql://localhost:3306/agricultural_price_prediction?useUnicode=true&characterEncoding=utf8&useServerPrepStmts=false&rewriteBatchedStatements=true",
  "root", "123456");
 }
 catch (ClassNotFoundException | SQLException e)
 {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 
}

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

相关文章

  • Java访问权限原理与用法详解

    Java访问权限原理与用法详解

    这篇文章主要介绍了Java访问权限,结合实例形式详细分析了java构造者思想、包、访问修饰符等相关原理、应用与操作注意事项,需要的朋友可以参考下
    2020-02-02
  • Spring注解开发生命周期原理解析

    Spring注解开发生命周期原理解析

    这篇文章主要介绍了Spring注解开发生命周期原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Java中Thread类的使用和它的属性

    Java中Thread类的使用和它的属性

    在java中可以进行多线程编程,在java标准库中提供了一个Thread类,来表示线程操作,本文主要介绍了Java中Thread类的使用和它的属性,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 2023年IDEA最新永久激活教程(亲测可用)

    2023年IDEA最新永久激活教程(亲测可用)

    打开电脑,发现 IDEA 又更新了一个小版本,2022.3.2 版本来了,真的是非常高兴,那么这么新的版本怎么激活使用呢?下面小编给大家带来了idea2023年最新永久激活方法,感兴趣的朋友一起看看吧
    2023-04-04
  • 详解Spring bean的注解注入之@Autowired的原理及使用

    详解Spring bean的注解注入之@Autowired的原理及使用

    之前讲过bean注入是什么,也使用了xml的配置文件进行bean注入,这也是Spring的最原始的注入方式(xml注入).本文主要讲解的注解有以下几个:@Autowired、 @Service、@Repository、@Controller 、@Component、@Bean、@Configuration、@Resource ,需要的朋友可以参考下
    2021-06-06
  • maven基础教程——简单了解maven的特点与功能

    maven基础教程——简单了解maven的特点与功能

    这篇文章主要介绍了Maven基础教程的相关资料,文中讲解非常细致,帮助大家开始学习maven,感兴趣的朋友可以了解下
    2020-07-07
  • java实现微信小程序加密数据解密算法

    java实现微信小程序加密数据解密算法

    这篇文章主要为大家详细介绍了java实现微信小程序加密数据解密算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Intellij IDEA 阅读源码的 4 个绝技(必看)

    Intellij IDEA 阅读源码的 4 个绝技(必看)

    今天小编给大家分享Intellij IDEA 阅读源码的 4 个绝技,熟练的运用 IDEA 中各个小技巧,让阅读跟踪源码变得更轻松,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-04-04
  • SpringBoot远程访问redis服务器问题剖析

    SpringBoot远程访问redis服务器问题剖析

    使用了SpringBoot的项目,在远程连接Redis服务器时,会遇倒一些小问题,下面通过本文给大家全面解析SpringBoot远程访问redis服务器问题,需要的朋友参考下吧
    2017-04-04
  • Spring多数据源导致配置失效的解决

    Spring多数据源导致配置失效的解决

    这篇文章主要介绍了Spring多数据源导致配置失效的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论