Aplicação Desktop + persistência de dados. Como fazer?

Gostaria que alguém me esclarecesse isto: qual a melhor forma de usar a persistência de dados numa aplicação desktop?

Digamos que seja um software que não precise de se conectar a um servidor por exemplo, um aplicativo simples de controle de caixa de um supermercado. Qual a melhor forma de armazenar os dados? Usando arquivos? Banco de Dados? Tenho conhecimento básico de MySQL, mas, até onde aprendi para que um programa que utiliza o banco de dados consiga acessá-lo, é preciso instalar o banco de dados.Entretanto não me recordo de instalar um software em casa que precisasse da instalação de algo do tipo.

Então, essa é a minha dúvida… se a melhor jogada é usando banco de dados, como fazer para integrar isto ao Java, sem precisar instalar no computador do cliente.

Bom, pra uma aplicação comercial acho que você poderia usar banco de dados sem problemas. Mas caso não queira, você pode usar também XML. Dê uma pesquisada nisso. Uma api boa pra xml é o XStream, que é bem fácil de aprender.

Abraço!

Olá,

Voce pode sim usar um XML sem problemas.

Mas acredito que seria mais interessante, neste caso, trabalhar com Banco de dados.

Utilize MySql ou Postgres (eu prefiro esse) que são gratuitos.

Estude sobre classes de conexão.

Abraço

Gostei muito do XStream, eu não conhecia essa API.

Mas, Arautus, o que eu posso fazer pra utilizar estes bancos de dados sem precisar instala-los no aplicativo cliente?
Ou, sempre que eu utilizar banco de dados eu tenho que instalar em cada máquina mesmo?

[quote=Jonathan_p]Gostei muito do XStream, eu não conhecia essa API.

Mas, Arautus, o que eu posso fazer pra utilizar estes bancos de dados sem precisar instala-los no aplicativo cliente?
Ou, sempre que eu utilizar banco de dados eu tenho que instalar em cada máquina mesmo?[/quote]

Bom acredito que a intenção de não precisar instalar banco de dados no cliente, acaba lhe tirando uma obrigação que é instalar o banco de dados no cliente. Mas se pensarmos um pouco mais longe a sua aplicação só vai poder se beneficiar de bancos stand-alone de baixa capacidade de armazenamento. Se é realmente essa a sua intenção pesquise sobre o Java DB e o HyperSonic SQL, esses dois bancos trabalham de forma stand-alone com poder de armazenamento razoável, nesse caso você trabalharia com um banco de dados relacional que poderia ser distribuido junto com a aplicação (ambos os bancos não passam de 5Mb), porém é como eu disse pense na sua aplicação à longo prazo com toneladas de dados para gerenciar.
Às vezes vale a pena passar o trabalho de ir configurar o banco no cliente colocando no mesmo um banco de dados mais “parrudo” (MySQL, PostGres), pois assim os dados são melhor gerenciados.

Espero ter ajudado :slight_smile:

Ajudou e muito laudenpower, vou pesquisar sobre estes DB que você me disse. :smiley:

Essa era a minha dúvida mesmo, o que estou desenvolvendo realmente não precisa de um banco de dados robusto.

Muito obrigado!

Eu sugeriria usar o banco de dados H2 em modo “embarcado” nesse caso aí.

Inté.