Conexão Hibernate em Tempo de execuçãp

8 respostas
Cesimar

Eu tenho uma aplicação que executa para várias empresas diferentes. Quando o usuário realiza o login, ele irá se logar na base da empresa respectiva. Para o acesso aos dados da sua empresa é necessário o fornecimento de: login, senha e empresa. Assim eu posso acessar qualquer banco que queira, pois o programa é implementado em JDBC, porém agora estou migrando para Hibernate e eu preciso configurar as propriedades de acesso ao banco no arquivo de configuração.

Lá vai minha dúvida. É possível eu escolher qual base quero acessar em tempo de execução?
Como faço?

8 Respostas

otaviojava

Sim.
você pode ter N sessões no hibernate.

Cesimar

E como devo proceder!?

otaviojava

Olha não sei se o que fiz foi o mais certo.
Más eu criei dois hibernate.cfg.xml e duas classes HibernateUtil

Ai eu ia usando o qual era preciso.

Cesimar

Mas ai é estático. Dessa forma vc só pode acessar os bancos que foram configurados previamente. Eu precisaria que quando o usuario escolhesse sua empresa, automaticamente seria direcionado para aquele banco. Do seu jeito eu tenho opções limitadas, ou não? Se eu tiver enganado, me ajuda ai, por favor.

otaviojava
AnnotationConfiguration cfg = new AnnotationConfiguration();
        cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
        cfg.setProperty("hibernate.connection.driver_class", "org.postgresql.Driver");
        cfg.setProperty("hibernate.connection.url", "jdbc:postgresql://localhost:5432/banco");
        cfg.setProperty("hibernate.connection.username", "user");
        cfg.setProperty("hibernate.connection.password", "senha");
        cfg.configure(f);
      factory = cfg.buildSessionFactory();
otaviojava

Repare que no exemplo acima são Strings então vc pode passa-los de alguma maneira.

Cesimar

Ah Rapaz, vc é Java mermo viu!! Muito bom! Muito obrigado, vc me quebrou um galho. Brigado!

otaviojava

Sem problemas.
Qualquer problemas só falar.

Criado 14 de janeiro de 2011
Ultima resposta 14 de jan. de 2011
Respostas 8
Participantes 2