2011-05-14 14 views
5

Hey all. Bu yüzden benim Java programımda tablo olarak bir sqlite DB içine eklemek istediğim csv dosyaları bir koleksiyon var. Ben de googled ve SO aradı, ama bu csv dosyalarını sqlite DB içine eklemek için herhangi bir öğretici bulamıyorum. Bu sqlite sarıcı kullanıyorum: Zentus SQLiteJDBC.Java'da bir SQLite DB'ye .csvs eklemek

 
1,John,Doe,5.0 
2,Jane,Smith,5.0 

Nasıl bir tablo oluşturup bu değerleri eklemek olabilir:

Yani bunun içinde aşağıdaki içeren bir csv dosyası var varsayalım?

Beni doğru yöne yönlendiren var mı? Teşekkür ederim!

Güncelleme: Tamam bu kılavuzu bulamadım: http://www.sqlite.org/cvstrac/wiki?p=ImportingFiles ama sözdizimi biraz kafa karıştırıcı. Özellikle:

Bunu ne yaptığını anlamaya
sqlite> create table test (id integer, datatype_id integer, level integer, meaning text);  
sqlite> .separator ","  
sqlite> .import no_yes.csv test 

, bu ayırıcı virgül olacak ve masa testi içine dosya no_yes.csv ithal etmek söylüyor.

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

Ben ayırıcı çizgiyi temsil etmek bunu yaparken çalıştı:

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

VE

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

Ama Ancak, bu ben JDBC rehber uyarınca sql ifadeleri yapıyor nasıl ikisi de bana bir hata veriyor. Bunu yapmak için nasıl giderim? Teşekkürler!

cevap

1

Önce tabloyu oluşturmanız gerekir. Sonra csv dosyalarını şu şekilde okuyabilirsiniz:

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();