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…