Pergunta

estou usando Hibernar em um aplicativo Java para acessar meu banco de dados e funciona muito bem com MS-SQL e MySQL.Mas alguns dos dados que tenho que mostrar em alguns formulários têm que vir de arquivos de texto, e por arquivos de texto quero dizer arquivos legíveis por humanos, eles podem ser CSV, delimitados por tabulação ou até mesmo um par de chave e valor, por linha desde meus dados são tão simples quanto isso, mas minha preferência, claro, são arquivos XML.

Minha pergunta é:Posso usar o hibernate para ler esses arquivos usando HQL, Query, EntityManager e todos os recursos que o Hibernate me fornece para acessar arquivos.Qual formato de arquivo devo usar e como configuro meu arquivo persistence.xml para reconhecer arquivos como tabelas?

Foi útil?

Solução

O Hibernate é escrito na API JDBC.Portanto, você precisa de um driver JDBC que funcione com o formato de arquivo de seu interesse.Obviamente, mesmo para acesso somente leitura, isso não terá um bom desempenho, mas ainda poderá ser útil se não for uma prioridade alta.Em um sistema Windows, você pode configurar fontes de dados ODBC para arquivos de texto delimitados, arquivos Excel, etc.Em seguida, você poderá configurar o JdbcOdbcDriver em seu aplicativo Java para usar essa origem de dados.

Para a maioria dos aplicativos em que trabalho, eu não consideraria essa abordagem;Eu usaria um mecanismo de importação/exportação para converter de um banco de dados real (mesmo que seja um banco de dados em processo como Berkeley DB ou Derby) em arquivos de texto.Sim, é uma etapa extra, mas pode ser automatizada, e o desempenho provavelmente não será muito pior do que tentar usar os arquivos de texto diretamente (provavelmente será muito melhor, no geral), e será mais robusto e fácil de desenvolver.

Outras dicas

Um rápido google surgiu

Espero que isso possa fornecer alguma inspiração?

Como disse Erickson, sua única esperança é encontrar um driver JDBC para essa tarefa.Há talvez xlsql (driver CSV, XML e Excel) que possa se adequar à tarefa.Depois disso, você só precisa encontrar ou escrever o dialeto de Hibernate mais simples que se adapte ao seu driver.

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