import java.io.BufferedInputStream;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Properties;

public class TestDao{

static Properties prop = new Properties();

public static void main111(String[] args) {

String filePath = "D:\\shared\\other\\testaa.sql";
String filePathout = "D:\\shared\\other\\sqls\\testaaout";
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriterMain = null;
BufferedWriter bufferedWriter = null;
try {

bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePathout+"0.sql")));
bufferedWriterMain = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePathout+".sql")));
String line = null;
int i = 0;
int k = 0;
while ((line = bufferedReader.readLine()) != null) {
line = line.replace("`", "");

if (k==10000)
{
i++;
k=0;
bufferedWriter.close();
bufferedWriterMain.write("@"+filePathout+i+".sql\n");
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePathout+i+".sql")));
}
k++;
bufferedWriter.write(line+"\n");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bufferedReader.close();
bufferedWriter.close();
bufferedWriterMain.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

public static void main(String[] args) {
//args=new String[]{"D:\\shared\\other\\param.properties"};
String csvFile = "";
String dbDriver = "";
String dbUrl = "";
String dbName = "";
String dbPassWord = "";
String installSql= "";
String skipHead = "";

if (args.length == 1)
{
propertiesFile(args[0]);

csvFile = getPropertiesValue("csvFile");
dbDriver = getPropertiesValue("dbDriver");
dbUrl = getPropertiesValue("dbUrl");
dbName = getPropertiesValue("dbName");
dbPassWord = getPropertiesValue("dbPassWord");
installSql = getPropertiesValue("installSql");
skipHead = getPropertiesValue("skipHead");
}
else if(args.length == 7)
{
csvFile = args[0];
dbDriver = args[1];
dbUrl = args[2];
dbName = args[3];
dbPassWord = args[4];
installSql= args[5];
skipHead =args[6];
}
else
{
System.err.println("==method of calling one=================================================");
System.err.println("param 1:csv file url");
System.err.println("param 1 demo:D:\\work\\xxx.csv");
System.err.println("param 2:db driver");
System.err.println("param 2 demo:org.mariadb.jdbc.Driver");
System.err.println("param 3:db url");
System.err.println("param 3 demo:jdbc:mariadb://ip:3306/dbname?useUnicode=true&characterEncoding=UTF8&autoReconnect=true");
System.err.println("param 4:db name");
System.err.println("param 4 demo:esgscc");
System.err.println("param 5:db password");
System.err.println("param 5 demo:esgscc");
System.err.println("call demo:java -jar test.jar param1 param2 param3 param4 param 5");
System.err.println("==method of calling two=================================================");
System.err.println("param 1:properties file url");
System.err.println("param 1 demo:edit param.properties, update param value.");
System.err.println("call demo:java -jar test.jar param.properties");
return;
}

String filePath = csvFile; //"D:\\work\\2015\\12\fangwei.csv";
BufferedReader bufferedReader = null;
Connection conn = null;
String driver = dbDriver;//"org.mariadb.jdbc.Driver";
String url = dbUrl;//"jdbc:mariadb://10.202.6.76:3306/esgscc?useUnicode=true&characterEncoding=UTF8&autoReconnect=true";
int parCount = installSql.replace(installSql,"?").length();
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, dbName, dbPassWord);

bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
String line = null;
int k = 0;
while ((line = bufferedReader.readLine()) != null) {
line = line.replace("\"", "");
String[] columns = line.split(",");
if(columns[0].trim().contains(skipHead)){
continue;
}
PreparedStatement pstmt = conn.prepareStatement(installSql);
int j = 1;

for (int i = 0; i < parCount; i++) {
pstmt.setString(j++, columns[i]);
}
k++;

pstmt.executeUpdate();

if (k>=299)
{
k = 0;
try
{
conn.close();
}
catch (Exception e) {
e.printStackTrace();
return;
}
conn = DriverManager.getConnection(url, dbName, dbPassWord);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
conn.close();
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

private static void propertiesFile(String propertiesFileUrl)
{
try {
InputStream in = new BufferedInputStream(new FileInputStream(propertiesFileUrl));
prop.load(in);
} catch (IOException e) {
e.printStackTrace();
}
}

private static String getPropertiesValue(String key)
{
String value = "";
if (null != prop)
{
value = prop.getProperty(key);
System.out.println(key+value);
}

return null==value?"":value.trim();
}
}

配置文件

csvFile=D:\\shared\\other\\fangwei.csv
dbDriver=oracle.jdbc.driver.OracleDriver
dbUrl=jdbc:oracle:thin:@10.0.13.57:1521:cbs
dbName=name
dbPassWord=passwd
installSql=insert into testa(id) values (?)
skipHead=id_

执行

D:\shared\other>java -classpath classes12.jar;test.jar; TestDao param.properties

读取大csv文件数据插入到MySql或者Oracle数据库通用处理的更多相关文章

  1. C语言进行csv文件数据的读取

    C语言进行csv文件数据的读取: #include <stdio.h> #include <string.h> #include <malloc.h> #inclu ...

  2. java读取目录下所有csv文件数据,存入三维数组并返回

    package dwzx.com.get; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...

  3. PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析

    现在需要分析访问日志,怎么办? 比如分析D:\Servers\Apache2.2\logs\access2014-05-22.log http://my.oschina.net/cart/针对这个问题 ...

  4. C#使用Linq to csv读取.csv文件数据

    前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...

  5. CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建

    CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...

  6. C#_.net core 3.0自定义读取.csv文件数据_解决首行不是标题的问题_Linqtocsv改进

    linqtocsv文件有不太好的地方就是:无法设置标题的行数,默认首行就是标题,这不是很尴尬吗?   并不是所有的csv文件严格写的首行是标题,下面全是数据,我接受的任务就是读取很多.csv报表数据, ...

  7. csv文件快速转存到mysql

    目录 csv文件快速转存到mysql 连接数据库 读取csv文件内容: 创表: csv数据导入样式: 完整脚本: csv文件快速转存到mysql 连接数据库 连接数据库: con = pymysql. ...

  8. jmeter参数化、添加变量、生成随机数和导入csv文件数据

    Remarks:本次使用jmeter版本为4.0 以下数据都在必应中演示: 添加普通变量 1.添加 User Defined Variables(用户自定义变量) 2.设置变量 3.使用变量 4.查看 ...

  9. 读取gzmt.csv文件,计算均值及概率

    问题: 读取gzmt.csv文件所有数据,选取收盘价格(倒数第二列),计算20天均值,权重取成交量(选做:时间权重为半衰期为15天):将该均值修剪为超过600的都设置为1000,并打印出该均值超过55 ...

随机推荐

  1. 【Python】Django auth 修改密码如何实现?

    使用示例1.创建用户>>> from django.contrib.auth.models import User>>> user = User.objects.c ...

  2. C# 中如何将List<string>里的集合转换成字符串并按指定的字符进行分隔?

    代码: using System; using System.Collections.Generic; publicclassMyClass { publicstaticvoidMain() { Li ...

  3. gedit如何使用代码片段

    gedit的片段插件 1 打开这个插件   2 以HTML为例,我们看到触发器是doctype   3则我在编辑一个HTML文档的时候,先输入doctype,再按Tab键,将会自动提示,我选择即可插入 ...

  4. 算法笔记_150:图论之双连通及桥的应用(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 Description In order to get from one of the F (1 <= F <= 5,000) graz ...

  5. HDU 2647--Reward【拓扑排序】

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  6. spring mvc相关问题

    1: 基于注解的SpringMVC简单介绍 2: spring组件扫描<context:component-scan/>使用详解 3: springMvc 注解配置例子

  7. Mongodb数据导出工具mongoexport和导入工具mongoimport使用

    如图所示,两个工具位于mongodb安装目录的bin目录下 下面介绍一下两者的使用方法: 一.导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection ...

  8. 虚析构函数? vptr? 指针偏移?多态数组? delete 基类指针 内存泄漏?崩溃?

    五条基本规则: 1.如果基类已经插入了vptr, 则派生类将继承和重用该vptr.vptr(一般在对象内存模型的顶部)必须随着对象类型的变化而不断地改变它的指向,以保证其值和当前对象的实际类型是一致的 ...

  9. 《开源框架那点事儿23》:採用TinyDB组件方式开发

    採用TinyDB组件方式开发 步骤 Icon 前文介绍四则运算的流程编程开发时,说过流程编排在开发反复功能时.能够利用已有的组件库高速开发.对于开发者而言仅仅须要简单配置流程就能够完毕工作了.开发增删 ...

  10. Spring Boot 概念知识

    转 http://rapharino.com/coder/Spring-Boot-Induction/ Spring Boot Induction 发表于 2016-10-29   |   分类于 c ...