java实现批量导入.csv文件到mysql数据库
时间:2019-08-30
本文章向大家介绍java实现批量导入.csv文件到mysql数据库,主要包括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(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 通过实例了解Python异常处理机制底层实现
- header函数设置响应头解决php跨域问题实例详解
- Linux采用双网卡bond、起子接口的方式
- PHP实现字母数字混合验证码功能
- php+pdo实现的购物车类完整示例
- CentOS7怎么执行PHP定时任务详解
- Linux下PHP+Apache的26个必知的安全设置
- linux中ssh免密通信的实现
- 怎么修改CentOS服务器时间为北京时间
- Laravel5.1 框架控制器基础用法实例分析
- Laravel5.1 框架模型软删除操作实例分析
- Laravel 手动开关 Eloquent 修改器的操作方法
- 怎么测试Linux下tcp最大连接数限制详解
- Laravel 5.1 框架Blade模板引擎用法实例分析
- 使用pygame实现垃圾分类小游戏功能(已获校级二等奖)