Creazione query non stampa tutti gli indici

di il
2 risposte

Creazione query non stampa tutti gli indici

Quando creo il file e srivo nella query, scrive una sola volta? come mai?

for (spinelliIndex = 0; spinelliIndex < spinelli.getVeicoli_id().size(); spinelliIndex++) {
			boolean match = false;
			for (veicoloIndex = 0; veicoloIndex < veicoloDb.getVeicoloId().size(); veicoloIndex++) {
				if (spinelli.getVeicoli_targa().get(spinelliIndex).equals(veicoloDb.getTarga().get(veicoloIndex))) {
					match = true;

					// Stampa a Video
					System.out.println(spinelli.getVeicoli_targa().get(spinelliIndex) + " = "
							+ veicoloDb.getTarga().get(veicoloIndex) + " --> "
							+ spinelli.getVeicoli_id().get(spinelliIndex) + " --> "
							+ veicoloDb.getVeicoloId().get(veicoloIndex));

					// Scrivi nella riga i
					row = sheet.getRow(spinelliIndex);

					// Scrivi nella colonna AC indice 28
					cell = row.createCell(28);

					// Scrivi il ciclo in tutte le righe nella colonna AC indice 28
					sheet.getRow(spinelliIndex).createCell(28)
							.setCellValue(spinelli.getVeicoli_id().get(spinelliIndex));

					FileOutputStream fos = new FileOutputStream(filePath);

					// Scrivi nel file EXCEL
					wb.write(fos);
					fos.close();

					// Scrivi NEl file .txt
					// Crea la Query e scrivi nel file
					file = new File(path);
					fw = new FileWriter(file);

//Qui la stampa è una sola, dovrebbe fare tutti gli indici
					fw.write("UPDATE veicolo SET ID = " + "'" + spinelli.getVeicolo_newid().get(spinelliIndex) + "'" + ","
							+ "CREATE_DATE = " + "'" + veicoloDb.getCreate_date().get(veicoloIndex) + "'" + ","
							+ "MODIFIED_DATE = " + "'" + veicoloDb.getModified_date().get(veicoloIndex) + "'" + "," + "UUID = "
							+ "'" + veicoloDb.getUuid().get(veicoloIndex) + "'" + "," + "CLASSE_EURO = " + "'"
							+ veicoloDb.getClasse_euro().get(veicoloIndex) + "'" + "," + "CODICE_CLIENTE_ORIGINARIO = " + "'"
							+ veicoloDb.getCodice_cliente_originario().get(veicoloIndex) + "'" + "," + "CONTRATTO = " + "'"
							+ veicoloDb.getContratto().get(veicoloIndex) + "'" + "," + "DATA_FINE_VALIDITA = " + "'"
							+ veicoloDb.getData_fine_validita().get(veicoloIndex) + "'" + "," + "DATA_INIZIO_VALIDITA = " + "'"
							+ veicoloDb.getData_inizio_validita().get(veicoloIndex) + "'" + "," + "DISPONIBILITA = " + "'"
							+ veicoloDb.getDisponibilita().get(veicoloIndex) + "'" + "," + "NAZIONE = " + "'"
							+ veicoloDb.getNazione().get(veicoloIndex) + "'" + "," + "TARGA = " + "'" + veicoloDb.getTarga().get(veicoloIndex)
							+ "'" + "," + "TIPO_DI_POSSESSO = " + "'" + veicoloDb.getTipo_di_possesso().get(veicoloIndex) + "'"
							+ "," + "ID_ANAGRAFICA = " + "'" + veicoloDb.getId_anagrafica().get(veicoloIndex) + "'"
							+ "FROM DISPOSITIVO_VEICOLO WHERE dispositivo_veicolo.id_anagrafica = veicolo.id_anagrafica"
							+ ";" + "\n");
					fw.flush();

					fw.close();

				}

			}
			// Targhe non trovate
			if (!match) {
				System.out.println("Targa non trovata: " + spinelli.getVeicoli_targa().get(spinelliIndex));
			}

		}

	}

2 Risposte

  • Re: Creazione query non stampa tutti gli indici

    imparareJava ha scritto:


    Quando creo il file e srivo nella query, scrive una sola volta? come mai?
    Deduzione veloce: la creazione del file con quel

    fw = new FileWriter(file);

    è annidata DENTRO tutti i cicli. Quindi ad ogni ciclo per cui si entra in quel if, RI-crei il file.
    Scusa ma ragioni su queste cose? Apri il file al di fuori di tutti i cicli. Oppure aprilo in modalità "append" (ma sarebbe meno efficiente).
  • Re: Creazione query non stampa tutti gli indici

    Hai ragione, Grazie
Devi accedere o registrarti per scrivere nel forum
2 risposte