【问题标题】:Inserting .csvs into an SQLite DB in Java在 Java 中将 .csvs 插入 SQLite DB
【发布时间】:2011-05-14 21:10:53
【问题描述】:

大家好。所以我有一组 csv 文件,我想将它们作为表插入到我的 Java 程序中的 sqlite DB 中。我也四处搜索并搜索了 SO,但我找不到任何关于如何将这些 csv 文件插入 sqlite DB 的教程。我正在使用这个 sqlite 包装器:Zentus SQLiteJDBC

假设我有一个 csv 文件,其中包含以下内容:

1,约翰,多伊,5.0 2,简,史密斯,5.0

我如何创建一个表并将这些值插入其中?

谁能指出我正确的方向?谢谢!

更新:好的,所以我找到了这个指南:http://www.sqlite.org/cvstrac/wiki?p=ImportingFiles,但语法让我有点困惑。具体来说:

sqlite> create table test (id integer, datatype_id integer, level integer, meaning text);    
sqlite> .separator ","    
sqlite> .import no_yes.csv test

我明白这是在做什么,它说分隔符将是一个逗号,并将文件 no_yes.csv 导入表 test。但是,这就是我按照 JDBC 指南执行 sql 语句的方式:

Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists test;");
stat.executeUpdate("create table test (id, name, value);");

我尝试这样做来表示分隔线:

stat.executeUpdate("separator ','");

stat.executeUpdate(".separator ','");

但两者都给我一个错误。我该怎么做呢?谢谢!

【问题讨论】:

    标签: java sqlite csv


    【解决方案1】:

    您需要先创建表。 然后你可以用类似的方式读取 csv 文件:

    BufferedReader br = new BufferedReader(new FileReader("your file"));
    String line;
    while ( (line=br.readLine()) != null)
    {
             String[] values = line.split(",");    //your seperator
    
             //Convert String to right type. Integer, double, date etc.
             stat.executeUpdate("INSERT INTO yourTable VALUES('"+value[0]+"','"+value[1]...
             //Use a PeparedStatemant, it´s easier and safer 
    }
    br.close();
    

    【讨论】:

      猜你喜欢
      • 2013-02-07
      • 2012-02-07
      • 1970-01-01
      • 2016-06-24
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多