更简单的CSV到SQL java文件转换器

时间:2010-11-17 04:31:22

标签: java sql file csv converter

是否有更简单的方法将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();
}

2 个答案:

答案 0 :(得分:1)

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

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

我建议查看一个像opencsv这样的库来为你处理csv解析。

答案 1 :(得分:1)

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

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