Aplicação local com banco de dados

Pessoal, preciso fazer um aplicativo desktop que basicamente cadastra fornecedores para posteriormente gerar um arquivo txt para ser importado por outro sistema. Quero que esse banco de fornecedores seja manipulado localmente, sem access ou sql, considerando que o aplicativo deve rodar no C: do cliente sem necessidade de qualquer outro aplicativo de banco de dados ou coisa parecida. Como posso implementar esse banco com Java? Txt?Importante: preciso de segurança nesses dados.

Bom dia,

Você pode fazer uma aplicação local com banco de dados embutido (que será uma alternativa mais simples). O banco de dados embutido é um banco alojado em um arquivo de dados e dispensa instalação ou servidor de SGBD. Você terá como benefícios agregados os quesitos de segurança, facilidades de manipulação e ainda poderá gerar o txt depois sem problemas.
Você pode utilizar o SQLite, H2 Database, HSQLDB, etc. Eu pessoalmente prefiro o SQLite. Segue post onde explico a usar o SQLite como banco de dados embutido: http://www.guj.com.br/posts/list/222253.java#1139218

ou voce pode simplesmente chutar o balde

Bem, há um grande problema aqui. Pelo fato de os dados ficarem no cliente, somente um arquivo de texto como você citou não tem segurança alguma.

No caso de um banco de dados embarcável, deve ser protegido por uma boa senha (pois como está local, um ataque de força bruta, por exemplo, pode ser feito bem rapidamente). Além disso é preciso tomar cuidado com a senha do banco que fica no seu código fonte (senão alguém usa um decompilador e pega a senha)…

Se são dados muito confidenciais talvez seja necessária outra abordagem.

Nisso eu concordo. Essa escolha depende do nível de proteção que você quer dar em sua aplicação:
-Se forem dados que não precisam de nenhuma segurança, use arquivo txt. :slight_smile:
-Se forem dados que precisam de segurança mas que isso não seja um fator tão crítico (p. ex: dados que vcoê deve evitar que outras pessoas acessem para que não sejam alterados/editados ou apagados acidentalmente - mas que não sejam confidenciais), use bancos embarcados. Você pode utilizar recursos de criptografia do arquivo do bd, caso julgue necessário e caso o mesmo tenho suporte para isso.
-Se forem dados confidenciais, foge a esse escopo. Daí você pode começar a pensar em um SGBD ou outra solução…

Obrigado a todos pelas dicas. No meu caso acho que um banco de dados embarcado com um bom backup é suficiente. Vou dar uma estudada no que foi sugerido e “meter bronca”.