Hibernate - base de dados dinâmica..Tem como?

Galera…estou com o seguinte problema…
Tenho sistemas desktop que acessam uma base de dados…utilizando o hibernate…
O que gostaria de saber se tem como configurar dinamicamente o endereço da base de dados, user e senha do banco sem ter que definí-las no hibernate.cfg.xml… pois o sistema vai ter opções de utilizar uma base local(Banco embutido) ou usar um banco externo… onde o usuário vai poder definir o endereço do servidor, porta, senha, login, etc…

Obrigado…

tenta criar duas unidade de persistencia dentro desse xml com nomes difrentes, e cada uma apontando pra um banco diferente:


....

Ai vc pode definir qual vc vai querer usar:

if(local)
EntityManagerFactory conexao = javax.persistence.Persistence.createEntityManagerFactory(“bancoLocal”);
else
EntityManagerFactory conexao = javax.persistence.Persistence.createEntityManagerFactory(“bancoRemoto”);

O problema é que se eu definir no xml… não vai ficar dinâmico…sendo que cada vez que eu for instalar o sistema, e se o banco for externo, vou ter que recompilar para modificar o endereço da base (Se for clientes diferentes que utilizam o sistema)

na realidade não vai precisar recompilar todo o código, e sim fazer uma alteração em um arquivo XML ou properties.

é isso msmo… se vc definir o enderço do banco no seu codigo, ai q vc vai ter que recompilar… definindo no xml, vc altera no xml, sem precisar recompilar…

Entendi, mas quanto tento fazer algo assim para testar…ele não carrega as propriedades

          Properties  p = new Properties();
          p.put("connection.username","saaaaa");
          p.put("connection.password","çalskdjf");
          
        Configuration conf = new Configuration().addProperties(p);
             // Cria uma SessionFactory usando o hibernate.cfg.xml
        sessionFactory = conf.configure().buildSessionFactory();
     

Obviamente esse trecho está dentro de um try … mas ele não carrega as propriedades de usuário e senha…porque? O que estou fazendo de errado?

Ou existe algum objeto properties específico do hibernate?

hibernate.properties

procura na ducomentação que você pode usar ou o XML ou o properties

Obrigado…vou pesquisar sobre isso…