Java讀取csv檔案並將內容插入到資料庫
阿新 • • 發佈:2019-01-09
Java讀取csv檔案, 並使用jdbc將內容插入到資料庫, 插入資料庫的類可以在另一篇文章中檢視, 有一個公共的csv操作jar包,本文未使用
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.1</version>
</dependency>
package com.thinkive.common.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import com.thinkive.common.function.gastatisics.bean.Bean;
/**
* @desc: 讀取csv檔案, 並將內容插入到資料庫
* @author: [email protected]
* @time: 2016年11月28日 下午3:37:35
*/
public class ReadCsv {
public static void readCsvAndInstallDB(String path, int ignoreRows) throws Exception {
File file = new File(path);
BufferedReader bReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), Constants.CHAR_CODING_GBK));
String line = "";
List<Bean> beanList = new ArrayList<Bean>();
int count = 0;
// 忽略前幾行標題
if(ignoreRows > 0) {
for (int i = 0; i < ignoreRows; i++) {
line = bReader.readLine();
}
}
try {
while((line = bReader.readLine()) != null) {
// System.out.println(++count+" "+line);
if(line.trim() != "") {
String[] pills = line.split(",");
Bean bean = new Bean(pills[0].trim(), pills[1].trim(), pills[2].trim(), pills[3].trim(), Constants.CHANNEL_TYPE_GUI_TAI);
beanList.add(bean);
if(++count%Constants.BATCH_NUM == 0) {
// 資料庫操作, 見“jdbc批量插入一文”
DBHelp.executeUpate(DBHelp.SQL_INSTALL_IDNO_THIRD, beanList, Constants.DATE_FORMATE_DEFAULT);
beanList.clear();
}
}
}
// 操作集合中最後一批資料 資料庫操作, 見“jdbc批量插入一文”
DBHelp.executeUpate(DBHelp.SQL_INSTALL_IDNO_THIRD, beanList, Constants.DATE_FORMATE_DEFAULT);
beanList.clear();
DBHelp.closeSources(DBHelp.getConn(), DBHelp.getPs());
beanList = null;
}finally {
if(bReader != null) {
bReader.close();
}
}
}
}