将.csvs插入Java中的SQLite数据库

时间:2011-05-14 21:10:54

标签: java sqlite csv

嘿所有人。所以我有一个csv文件的集合,我想在我的Java程序中作为表插入到sqlite DB中。我搜索了搜索SO,但我找不到任何关于如何将这些csv文件插入sqlite DB的教程。我正在使用这个sqlite包装器:Zentus SQLiteJDBC

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

1,John,Doe,5.0
2,Jane,Smith,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导入表测试。但是,这就是我按照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 ','");

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

1 个答案:

答案 0 :(得分: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();