4
respostas

Arquivos de lote

Bom dia.

Tenho uma planilha com informações que serão gravadas em uma tabela da minha base de dados. Qual a melhor estratégia para fazer uma operação em lote para gravar todos esses registros sem problemas com memória? Já fiz a rotina de leitura dos dados, mas ainda estou gravando um a um com manager.persist(objeto) e sei que não é uma boa idéia por conta do OutOfMemoryError. Obrigado.

4 respostas

Oi Marco, tudo bem ?

Já usei a muito tempo atrás uma ferramenta que transformava o csv para um dump para inserção no banco de dados.

Tem um tutorial dela aqui :

http://pt.wikihow.com/Criar-um-Banco-de-Dados-a-Partir-de-uma-Planilha-do-Excel

Espero ter ajudado.

Matheus, na verdade eu já tenho a tabela criada. Eu preciso fazer essa importação de dados via java. O problema é que não posso ficar lendo linha a linha da planilha e ir dando um manager.persist(objeto) para cada registro lido. Preciso fazer uma espécie de um bulk operations para inserir todos de uma vez.

Marco, pela documentação do hibernate encontrei apenas dessa forma :

https://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch04.html

Boa noite, blz?

Já que isso será feito via batch java, não seria uma boa usar Spring Batch em conjunto com JDBC Template para ter performance. Pra esse caso específico, o hibernate não parece ser a melhor solução.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software