Ciao a tutti devo caricare tramite una programma java dei dati in un database.
I dati che prendo sono di un file CSV, che contiene esattamente le seguenti tuple
Il codice che immette i dati nel DB è il seguente :codice:0.455,0.365,0.095,0.514,0.2245,0.101,0.15,1 0.35,0.265,0.09,0.2255,0.0995,0.0485,0.07,2
Il problema è che nel db mi vengono caricate 3 tuple al posto di 2, in particolare è l'ultima che viene ripetuta.codice:private void loadFromCsv(String fileName, int[] Xcont, int[] Xdisc, int Y, String tableTo){ StringTokenizer st; BufferedReader bufRdr; String line = null; String[] tupla; String query; int numValori,i;i=0; File file = new File(fileName); try { bufRdr = new BufferedReader(new FileReader(file)); line = bufRdr.readLine(); bufRdr.close(); st = new StringTokenizer(line,","); numValori = st.countTokens();System.out.print(numValori); tupla = new String[numValori]; // Salvataggio del dataset dal file CSV sorgente al database di servizio bufRdr = new BufferedReader(new FileReader(file)); while ((line = bufRdr.readLine()) != null){ st = new StringTokenizer(line,","); // caricamento della tupla dei valori for(i=0; i<numValori; i++){ if (st.hasMoreTokens()) { tupla[i] = st.nextToken(); System.out.println(tupla[Y]); } } // inserimento della tupla nel Dataset query = "INSERT INTO " + tableTo + " VALUES (" + tupla[Y]; for (i=0; i<Xcont.length; i++) query += "," + tupla[Xcont[i]]; for (i=0; i<Xdisc.length; i++) query += ",'" + tupla[Xdisc[i]].replace("\"", "") + "'"; //query += ",1,1);"; query += ");"; db.exUpdate(query); } bufRdr.close(); //query = "INSERT INTO DatasetTemp SELECT DISTINCT * FROM Dataset"; //query = "INSERT INTO DatasetTemp SELECT DISTINCT Y FROM Dataset;"; //db.exUpdate(query); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
Sapreste dirmi perché succede questo?? Dove sbaglio??

Rispondi quotando