Usar banco de dados para aplicação desktop?

Tenho um projeto para desktop, uma IDE e Compilador, que em momento nenhum utiliza acesso a servidor, web ou qualquer comunicação externa, apenas a aplicação rodando por conta no PC.
E estou com dúvida sobre o melhor meio para salvar os dados, de modo que o software seja portável a ponto de eu poder acrescentar e remover atributos das classes e, com o mínimo de mudanças, manter a compatibilidade com versões antigas - o software novo sempre deve conseguir abrir os programas escritos nas versões mais antigas.
A classe java.io me pareceu deixar a desejar, estive lendo sobre os bancos de dados com JDBC e SQL, sobre Hibernate, sobre EJB, achei interessante mas ainda estou com algumas dúvidas:

  • Hibernate e EJB são apenas para acesso a dados em um servidor? Ou posso usar na minha aplicação desktop e salvar os dados em “Meus Documentos”?
  • Entre estes e outros, qual modo vcs recomendam para salvar os arquivos no pc de modo a manter essa flexibilidade (eu poder alterar o software e manter a compatibilidade com o mínimo de alterações no código)?

ps. De preferência com acesso rápido aos dados, fiz testes com serialização e achei um tanto lerdo demais… (e depois fiquei sabendo dos outros problemas da serialização e abandonei de vez…)

Vc pode utilizar um banco de dados embarcado como o Apache Derby por exemplo.

Até mais!

As informações que vc iria gravar, eram fontes abertos no momento que fechou, propriedades ou configurações específicas certo ?
Se for isso, sugiro vc utilizar arquivos .properties mesmo… mais tranquilo, e vc tem controle fácil para tratar atributos novos no java…

Agora se for outro tipo de dado, com maior número de registros, aí tb sugiro bancos embarcados, lembrando que o derby já sitado vem nos jdks mais novos…

Se for pequeno seu projeto indicaria o HSQLDB, é um banco feito em JAVA tambem, é um pouco limitado mas gostei!

Como assim “maior número de registros”? Pode ser que seja grande quantidade de dados, caso o usuário escreva um programa grande… Mas nada que ultrapasse umas 10 mil variáveis… acredito que seja pequeno…

Arquivos .properties são do Hibernate?