【问题标题】:Simpler CSV to SQL java file converter更简单的 CSV 到 SQL Java 文件转换器
【发布时间】:2011-05-11 05:35:34
【问题描述】:

有没有比这更简单的方法将 CSV 文件转换为 SQL 文件?:

BufferedReader input = new BufferedReader(new FileReader(new File("c:\\file.csv")));     
Writer output = new BufferedWriter(new FileWriter(new File("c:\\file.sql")));

try {
  String line = null;
  String[] st = null;

  while ((line = input.readLine()) != null) {
    st = line.replace("\"","").split(",");

    output.write("INSERT INTO `table` "
                    + "(`column_id`, `column1`, `column2`) VALUES "
                    + "(" + st[2] + ", " + st[0]  + ", " + st[1] +")"
                    + ";"
                    + "COMMIT;\n");

  }
} finally {
  input.close();
  output.close();
}

【问题讨论】:

  • @Asaph: 大多数也支持 CSV 导入 =)
  • 您使用的是什么数据库?是 MySQL 吗?如果是这样,您可以使用一些专业的拨入选项导入带有LOAD DATA INFILE 的 CSV 文件。

标签: java sql file csv converter


【解决方案1】:

如果您没有找到更简单的解决方案,请警惕对 csv 数据进行简单拆分。从经验来看,这是一个有效的 csv,它会破坏一个简单的拆分解决方案:

"field 1a, field 1b", field2, "field 3a, field3b", field4

我建议查看诸如 opencsv 之类的库来为您处理 csv 解析。

【讨论】:

    【解决方案2】:

    使用现成的 csv 解析器库之一,例如 one。否则,您将需要一个小型状态机来处理带引号的字符串等中的逗号。

    我还看到您没有执行 SQL,而是将 sql 语句写入文件。大多数数据库都带有一个加载实用程序,它将接受一个 csv 文件作为输入。

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多