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. 高性能HTML

    避免使用Iframe Iframe也叫内联frame,可以把一个HTML文档嵌入到另一个文档中.使用iframe的好处是被嵌入的文档可以完全独立于其父文档,凭借此特点我们通常可以使浏览器模拟多线程,需 ...

  2. xampp下载地址 一个集成的易于安装的WEB环境部署包

    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了.它可以在Windo ...

  3. 【转】web服务器工作原理

    一.静态网页的工作原理如下:A.用户在浏览器的地址栏输入要访问的地址并回车,触发这个浏览请求. B.浏览器将请求发送到Web服务器.C.Web服务器接受这个请求,并根据请求文件的后缀名判定是否为HTM ...

  4. 解决Linux平台下VMware出现"No 3d support is available from the host"或"Hardware graphics acceleration is not available" 错误

    错误日志: No 3d support is available from the host Hardware graphics acceleration is not available 解决方法: ...

  5. Adobe Acrobat Pro 修改背景色

      Adobe Acrobat Pro 如何修改背景色 CreateTime--2017年8月1日10:05:58Author:Marydon 参考:百度经验 在菜单栏选择“编辑”,下拉栏中选择最后一 ...

  6. JavaWeb 调用接口

      JavaWeb 如何调用接口 CreateTime--2018年4月2日19:04:29 Author:Marydon 1.所需jar包 2.代码设计 WebUtils.java import j ...

  7. 铁通网络没有一个真实的公网IP,NAT转换能不能解决?

    铁通网络没有一个真实的公网IP,NAT转换能不能解决?     我的是铁通宽带,现在想用自己的机子做一个动态主机,可是因为铁通垃圾网络的NAT转发问题,使用cn99qdns手动更新动态域名IP后公网能 ...

  8. 数据库选型之MySQL(多线程并发)

    刘勇    Email: lyssym@sina.com 本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于高频中心库 ...

  9. HQL的select new map ···语法

    通常hibernate查询出的结果集是类似于 List<T> 或 List<Object[]> 的类型 类似于下面这个方法 public List<SfJmsfT> ...

  10. mysql数据库创建删除带横杠的数据库名

    mysql> create database d-d; ERROR 1064 (42000): You have an error in your SQL syntax; check the m ...