Configuração do Hibernate em tempo de execução

6 respostas
Resplandes

Boa noite amigos, tenho uma pequena dúvida trabalho com JDBC, e uns pequenos projetos locais com Persistencia a duvida é como configuro o endereço do servidor em rede para o arquivo de configuração de persistencia ou do hibernate em tempo de execução se o mesmo encontra-se já dentro do .jar gerado ?

6 Respostas

rodrigo.uchoa

Pode explicar melhor?

Abs.

Resplandes

Exemplo eu trabalho com uma app local com os parametros do hibernate para um servidor local mas preciso de app clientes tbm que ficarão na rede e o ip do servidor ou nome do host tem que ser informado somente no momento da implantação do software, como fazer essa configuração do ip do host para o hibernate sendo que o arquivo de configuração/persistencia já encontra-se dentro do .jar teria que gerar um outro arquivo de configurações que fica externo ao jar ou algo do tipo ?

rodrigo.uchoa

Essa aplicação é web ou desktop?

Resplandes

Boa noite amigo é Desktop Java SE com Swing Framework a questão de ser web imagino que não seria necessário clientes e nem configuração do host do servidor pois o mesmo seria localhost onde a aplicação estiver ai os cliente acessavam através de navegadores a minha duvida como no inicio é da reconfiguração do host do servidor de dados em tempo de execução

rodrigo.uchoa
Boa noite amigo é Desktop Java SE com Swing Framework a questão de ser web imagino que não seria necessário clientes e nem configuração do host do servidor pois o mesmo seria localhost onde a aplicação estiver ai os cliente acessavam através de navegadores a minha duvida como no inicio é da reconfiguração do host do servidor de dados em tempo de execução

Sim sim.. Entendi. É que a forma como você falou não foi das mais claras do mundo.

Quanto ao seu problema, acho que a alternativa é iniciar o EntityManagerFactory/SessionFactory programaticamente mesmo. Você não é obrigado a colocar as informações de banco de dados no arquivo ".xml" do jpa/hibernate não. O seu programa cliente pode ser iniciado passando essas informações por propriedade de sistema ou até mesmo sendo informadas diretamente na interface swing, e você via código passaria essas informações "na mão". Um breve exemplo aqui de como isso seria feito usando JPA:

//buscando os dados da conexao de algum lugar que vc escolheu
String url = getUrl(); 
String username = getUsername();
String password = getPassword();        

Map<String, String> props = new HashMap<String, String>();
props.put("javax.persistence.jdbc.user", username);
props.put("javax.persistence.jdbc.password", password);
props.put("javax.persistence.jdbc.url", url);
Persistence.createEntityManagerFactory("nome-do-persistence-unit", props);
Resplandes

Obrigado amigo vou fazes aqui e posto falando o resultado obrigado…

Criado 28 de outubro de 2013
Ultima resposta 29 de out. de 2013
Respostas 6
Participantes 2