Domanda

Versione corta: supponendo Non voglio conservare i dati a lungo, come faccio a creare un database programmaticly in HSQLDB e caricare alcuni dati CSV in esso per? Mio schema corrisponderà esattamente i file ei file non hanno i nomi delle colonne adeguate.

Questo è un processo automatico.

dettagli:

Ho bisogno di applicare alcune semplici tecniche di SQL a tre file CSV scaricato via web, quindi creare qualche DTOs che posso poi usare con un po 'di codice esistente per elaborare loro un po' di più, e salvarli via REST. Non voglio davvero pasticciare con i database, ma i file CSV sono collegati da chiavi esterne, quindi stavo pensando di utilizzare un database in memoria incorporato per fare il lavoro, poi gettare l'intero lotto di distanza.

che avevo in mente un'applicazione a riga di comando che lavora in questo modo:

  1. Creare un database fresca in HSQLDB.
  2. Avvia tre HTTP GET in tre le discussioni che utilizzano Apache HttpClient.
  3. Importa i CSV in tre HSQLDB Tabelle di memoria.
  4. Esegui alcuni SQL.
  5. analizzare i risultati nella mia attuale DTOs.
  6. Etc ...

Potrei usare puntatori a codice e utilità utile per i punti 1 e 3. Inoltre v'è alternativa al hsqldb devo considerare?

È stato utile?

Soluzione

opencvs . Ti aiuta a analizzare i file CSV.

Altri suggerimenti

L'app riga di comando da utilizzare è il barattolo utilità SqlTool fornito con HSQLDB. La procedura può essere completata come segue:

  1. Creare un database fresca HSQLDB in memoria (basta collegarsi al database in-memory).
  2. Avvia tre HTTP ottiene usando Apache HttpClient per ottenere i file CSV.
  3. Creare tre tabelle di testo HSQLDB e impostare la fonte di queste tabelle per i CSV
  4. Esegui qualche SQL. Analizzare i risultati nei vostri DTOs esistenti.

tabelle Creazione di testo nelle tabelle pure in memoria non è stato possibile quando la domanda è stato chiesto. Si è ora pienamente supportato nelle versioni 2.x HSQLDB.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top