Java读取csv文件并将内容插入到数据库

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: changez@thinkive.com
 * @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();
			}
		}
	}
}




  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值