Pergunta

A versão curta: supondo que eu não quero manter os dados por muito tempo, como faço para criar um banco de dados programmaticly em HSQLDB e carregar alguns dados CSV para ela, para? Meu esquema irá corresponder os arquivos exatamente e os arquivos têm nomes das colunas adequadas.

Este é um processo automático.

Detalhes:

Eu preciso aplicar algumas técnicas de SQL simples para três arquivos CSV baixado via web, em seguida, criar alguns DTOs que eu possa, em seguida, usar com algum código existente para processá-los um pouco mais, e guardá-las via REST. Eu realmente não quer mexer com bancos de dados, mas os arquivos CSV são ligados por chaves estrangeiras, então eu estava pensando em usar um banco de dados in-memória embutida para fazer o trabalho, então jogue todo o lote de distância.

eu tinha em mente um aplicativo de linha de comando de trabalho como este:

  1. Criar um novo banco de dados em HSQLDB.
  2. Inicie três HTTP GETs em três threads usando Apache HttpClient.
  3. Import as CSVs em três HSQLDB tabelas de memória.
  4. Executar alguns SQL.
  5. analisar os resultados em meu existente DTOs.
  6. Etc ...

Eu poderia usar ponteiros para código e utilitários úteis para os itens 1 e 3. Também há uma alternativa para HSQLDB devo considerar?

Foi útil?

Solução

Verifique OpenCVS . Ele ajuda você a analisar arquivos CSV.

Outras dicas

O aplicativo de linha de comando para uso é o jar utilitário SqlTool que é fornecido com HSQLDB. Seu procedimento pode ser preenchido da seguinte forma:

  1. Criar um novo banco de dados HSQLDB na memória (basta ligar para o banco de dados in-memory).
  2. Inicie três HTTP GETs usando Apache HttpClient para obter os arquivos CSV.
  3. Crie três tabelas de texto HSQLDB e definir a fonte dessas tabelas para os CSVs
  4. Executar alguns SQL. Analisar os resultados em seus DTOs existentes.

Criação de tabelas texto em puros tabelas na memória não era possível quando a pergunta foi feita. Ele agora é totalmente suportado em HSQLDB 2.x versões.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top