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

一时失言乱红尘 2022-07-14 07:19 250阅读 0赞

Java读取csv文件, 并使用jdbc将内容插入到数据库, 插入数据库的类可以在另一篇文章中查看, 有一个公共的csv操作jar包,本文未使用



net.sourceforge.javacsv

javacsv

2.1

  1. package com.thinkive.common.util;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import com.thinkive.common.function.gastatisics.bean.Bean;
  9. /**
  10. * @desc: 读取csv文件, 并将内容插入到数据库
  11. * @author: changez@thinkive.com
  12. * @time: 2016年11月28日 下午3:37:35
  13. */
  14. public class ReadCsv {
  15. public static void readCsvAndInstallDB(String path, int ignoreRows) throws Exception {
  16. File file = new File(path);
  17. BufferedReader bReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), Constants.CHAR_CODING_GBK));
  18. String line = "";
  19. List<Bean> beanList = new ArrayList<Bean>();
  20. int count = 0;
  21. // 忽略前几行标题
  22. if(ignoreRows > 0) {
  23. for (int i = 0; i < ignoreRows; i++) {
  24. line = bReader.readLine();
  25. }
  26. }
  27. try {
  28. while((line = bReader.readLine()) != null) {
  29. // System.out.println(++count+" "+line);
  30. if(line.trim() != "") {
  31. String[] pills = line.split(",");
  32. Bean bean = new Bean(pills[0].trim(), pills[1].trim(), pills[2].trim(), pills[3].trim(), Constants.CHANNEL_TYPE_GUI_TAI);
  33. beanList.add(bean);
  34. if(++count%Constants.BATCH_NUM == 0) {
  35. // 数据库操作, 见“jdbc批量插入一文”
  36. DBHelp.executeUpate(DBHelp.SQL_INSTALL_IDNO_THIRD, beanList, Constants.DATE_FORMATE_DEFAULT);
  37. beanList.clear();
  38. }
  39. }
  40. }
  41. // 操作集合中最后一批数据 数据库操作, 见“jdbc批量插入一文”
  42. DBHelp.executeUpate(DBHelp.SQL_INSTALL_IDNO_THIRD, beanList, Constants.DATE_FORMATE_DEFAULT);
  43. beanList.clear();
  44. DBHelp.closeSources(DBHelp.getConn(), DBHelp.getPs());
  45. beanList = null;
  46. }finally {
  47. if(bReader != null) {
  48. bReader.close();
  49. }
  50. }
  51. }
  52. }

发表评论

表情:
评论列表 (有 0 条评论,250人围观)

还没有评论,来说两句吧...

相关阅读