Java - Cargar un archivo CSV e insertar en un BD de SQLITE

 
Vista:
sin imagen de perfil
Val: 17
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cargar un archivo CSV e insertar en un BD de SQLITE

Publicado por Luis David (11 intervenciones) el 07/06/2018 17:51:08
Pues estoy intentando insertar un archivo .csv a una base de datos MEDIANTE CODIGO JAVA. Y estoy probando con splits y todo tipo de cosas intuyo que la respuesta esta cerca pero no la encuentro. Lo que busco es que mediante codigo SQL dentro del código Java se vayan añadiendo los datos ordenados a la tabla en este caso y aunque no importa "Coches".Tengo un buen código y el resultado no está muy lejos del resultado que quiero obtener ya que tengo como resultado de la ejecución lo que hay en el CSV ordenado para introducir los datos en la tabla de la BD, sólo necesito el último paso.

Aquí el código de la clase:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
 
import com.opencsv.CSVReader;
 
 
public class LeerFicheroCSV {
 
 
	public void ImportarCSV() throws IOException, SQLException{
 
		Connection connection = Conexion.getConexion();
 
		 CSVReader reader = null;
		//Input file which needs to be parsed
	        String fileToParse = "csv/car.csv";
	        BufferedReader fileReader = null;
 
	        //Delimiter used in CSV file
 
	        try
	        {
	            String line = "";
 
 
 
	            //Create the file reader
	            fileReader = new BufferedReader(new FileReader(fileToParse));
 
	            //Read the file line by line
	            while ((line = fileReader.readLine()) != null)
	            {
	                //Get all tokens available in line
	                String[] token= line.split(",");
 
	                for (int i = 0; i < token.length; i++) {
	                	//Print all token
 
	                     System.out.println(token[i]);
					}
 
	    System.out.println("---------");
	            }
	        }
	        finally
	        {
	            try {
	                fileReader.close();
	            } catch (IOException e) {
	                e.printStackTrace();
 
	            }
	        }
´}
	 }

El resultado de la ejecución de este código es el siguiente:


Captura

MUCHAS GRACIAS DE ANTEMANO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cargar un archivo CSV e insertar en un BD de SQLITE

Publicado por Yamil Bracho (2315 intervenciones) el 07/06/2018 17:56:24
Define en tu BD una tabla que contenga la estructura que necesitas y entonces usa JDBC para guardar la informacion que obtienes de usar el split en el csv...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cargar un archivo CSV e insertar en un BD de SQLITE

Publicado por Luis David (11 intervenciones) el 07/06/2018 18:08:28
Sisi, la tengo creada ya con la estructura necesaria pero no consigo insertar los tokens dentro y no entiendo porque, sería haciendo diferentes setString del tipo:

1
2
3
4
5
ps.setString(1, car.getMatricula());
ps.setString(2, car.getMarca());
ps.setString(3, car.getModelo());
ps.setString(4, car.getNombre_Cliente());
ps.setString(5, car.getFecha_Entrada());

Más o menos como ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cargar un archivo CSV e insertar en un BD de SQLITE

Publicado por Yamil Bracho (2315 intervenciones) el 07/06/2018 18:27:45
Tienes que crear el objeto car a partir de los tokens del csv
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cargar un archivo CSV e insertar en un BD de SQLITE

Publicado por Luis David (11 intervenciones) el 07/06/2018 18:55:28
He añadido las siguientes líneas al codigo

1
2
3
4
5
6
for (int i = 0; i < token.length; i++) {
    //Print all token
 
    CarDTO car = new CarDTO(token[i], token[i], token[i], token[i], token[i]);
    imp.insertCar(car);
}

Con el siguiente resultado:


Captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar