2011-05-14 33 views
5

Hola a todos. Así que tengo una colección de archivos csv que me gustaría insertar en una base de datos sqlite en mi programa Java como tablas. Busqué en Google y también busqué SO, pero no encuentro ningún tutorial sobre cómo insertar estos archivos csv en la base de datos sqlite. Estoy usando este contenedor sqlite: Zentus SQLiteJDBC.Insertar .csvs en una base de datos SQLite en Java

Así que vamos a suponer que tengo un archivo CSV con la siguiente dentro de ella:

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

¿Cómo podría crear una tabla e insertar estos valores en ella?

¿Alguien puede indicarme la dirección correcta? ¡Gracias!

Actualización: Aceptar lo que encontré esta guía: http://www.sqlite.org/cvstrac/wiki?p=ImportingFiles pero la sintaxis me está confundiendo un poco. Específicamente:

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

entiendo lo que está haciendo esto, se dice que el separador será una coma, y ​​para importar el no_yes.csv archivo en la prueba de la tabla. Sin embargo, esta es la forma en que he estado haciendo las sentencias SQL como por la guía de JDBC:

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

He intentado hacer esto para representar la línea de separación:

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

Y

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

Pero ambos me dan un error. ¿Cómo voy a hacer esto? ¡Gracias!

Respuesta

1

Primero debe crear la tabla. Luego puede leer los archivos csv con algo como eso:

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