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. 使用SQL查询连续号码段

    原文http://www.cnblogs.com/tc310/archive/2010/09/17/1829276.html CREATE TABLE #test(fphm INT ,kshm CHA ...

  2. SWFUpload 已上传成功数量控制 插件(用于解决队列满问题)

    当我们在使用 SWFUpload 做文件上传时,我们需要把已经上传的文件列表做一个删除, 但在我们把已上传列表删除后,再重新上传时,会发现提示 上传队列满 的问题,原因就是有一个状态对象中的一个 成功 ...

  3. Android面试,View绘制流程以及invalidate()等相关方法分析

    整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为 根据之前设置的状态,判断是否需要重新计算视图大小(measu ...

  4. Could not parse the file: d:\matlab7\toolbox\ccslink\ccslink\info.xml

    找到安装目录下的info.xml文件,用记事本打开. 我的安装目录是:D:\MATLAB7\toolbox\ccslink\ccslink 用记事本打开,显示如下内容: <productinfo ...

  5. NFC低功耗模式

  6. 总想自己动动手系列·2·本地和外网(Liunx服务器上部署的web项目)按照自定义的报文格式进行交互(完结篇)

    一.准备工作 (1)创建一个web-project工程,部署本地可正常访问,部署在云服务上可访问. (2)理解如何在web.xml文件中配置过滤器,和创建一个自定义的过滤器. (3)懂得如何打war包 ...

  7. jquery 图片自动切换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. OpenERP登录页面调整

    在OpenERP的登录页面中,有针对数据库管理的链接,为了安全起见,一般都会通过修改原始的XML来实现隐藏的目的.但这样每次重新安装以后,都要重新修改,很不方便,所以我们可以通过建立一个新模块的方式来 ...

  9. socket shutdown 与 close 函数 的区别

    假设server和client 已经建立了连接,server调用了close, 发送FIN 段给client(其实不一定会发送FIN段,后面再说),此时server不能再通过socket发送和接收数据 ...

  10. 常用Jar包下载

    Jackson包下载 :https://yunpan.cn/cBdPGeIESZ4jE  访问密码 36f7