Configurar Hibernate via CLasse

Amigos estou procurando ma sem nenhum exemplo pratico, preciso pegar meu hibernate.cfg.xml e passa-lo para uma classe, ou alguma forma para resolver o meu problema.

Hoje minha aplicação usa o hibernate.cfg.xml, mas meu banco não está em um endereço de rede e sim em um arquivo, então preciso especificar o local onde a base se encontra, por exemplo c:/base

Para que a aplicação seja dinâmica este endereço deve ser dinâmico para isso preciso passar o endereço onde a aplicação está rodando, desta forma a base ficará no mesmo diretório da aplicação.

Via xml creio eu que seja impossível, então estou precisando de um exemplo de como configurar o hibernate via código, via a sua classe de configuração, para assim na url do banco eu colocar um System.getProperty(“user.dir”) pegando o local da aplicação e gerando o banco na raiz do diretório que ela se encontra.

Obrigado!

isso se chama configuração programatica, da uma olhada na classe Configuration do hibernate.

Aqui segue um exemplo básico:

abrasss

Legal cara, mas pelo o que eu vi para cada classe que tenho terei que gerar um xml. Ele não pega annotation desta forma será?

ele gera o xml pq ele faz o mapeamento via xml ao inves de anotações, com ctza existe um meio de fazer a conf programatica com anotações…

tenta dar uma olhadinha na AnnotationConfiguration.

abrasssss

Ae amigo obrigado pela força achei como mudar para annotation, só mudar o método addClass para addAnnotatedClass

configuration.addAnnotatedClass(Classe.class);

parabéns :smiley:

abrasss

Na verdade fiz até diferente, deixei meu hibernate.cfg.xml como estava, apenas fiz a mudança na URL.

Configuration configuration = new Configuration().configure();
configuration.setProperty("hibernate.connection.url", "jdbc:hsqldb:file:" + System.getProperty("user.dir") + "/db");
sessionFactory = configuration.buildSessionFactory();      

Desta forma tudo fica no xml, exceto claro o endereço da url que substituo no código acima.

Valeu pela força!

Você está usando um banco standalone (embarcado), tipo DerbyDb ou HsqlDb?
Se for isso, e você pretende deixar a aplicação e o banco no mesmo diretório não precisa fazer mudança nenhuma, é só não usar endereço na url.

Por exemplo eu tenho diretório c:/programas/myapps/

Dentro de myapps eu terei o diretório do banco e o arquivo .jar da aplicação:
c:/programas/myapps/banco
c:/programas/myapps/app.jar

Na configuração do HIbernate, tanto de forma programatica como usando o hibernate.cfg.xml eu configura a url de conexão assim:

//No Hsqldb : <property name="hibernate.connection.url" value="jdbc:hsqldb:file:banco/no_do_banco"/> //No Derby <property name="hibernate.connection.url">jdbc:derby:banco/no_do_banco;create=true</property>

[quote=romarcio]Você está usando um banco standalone (embarcado), tipo DerbyDb ou HsqlDb?
Se for isso, e você pretende deixar a aplicação e o banco no mesmo diretório não precisa fazer mudança nenhuma, é só não usar endereço na url.

Por exemplo eu tenho diretório c:/programas/myapps/

Dentro de myapps eu terei o diretório do banco e o arquivo .jar da aplicação:
c:/programas/myapps/banco
c:/programas/myapps/app.jar

Na configuração do HIbernate, tanto de forma programatica como usando o hibernate.cfg.xml eu configura a url de conexão assim:

//No Hsqldb : <property name="hibernate.connection.url" value="jdbc:hsqldb:file:banco/no_do_banco"/> //No Derby <property name="hibernate.connection.url">jdbc:derby:banco/no_do_banco;create=true</property>
[/quote]

Poxa romarcio mais fácil ainda heheheh, foi só remover a “/” valeu!

[quote=Shakall][quote=romarcio]Você está usando um banco standalone (embarcado), tipo DerbyDb ou HsqlDb?
Se for isso, e você pretende deixar a aplicação e o banco no mesmo diretório não precisa fazer mudança nenhuma, é só não usar endereço na url.

Por exemplo eu tenho diretório c:/programas/myapps/

Dentro de myapps eu terei o diretório do banco e o arquivo .jar da aplicação:
c:/programas/myapps/banco
c:/programas/myapps/app.jar

Na configuração do HIbernate, tanto de forma programatica como usando o hibernate.cfg.xml eu configura a url de conexão assim:

//No Hsqldb : <property name="hibernate.connection.url" value="jdbc:hsqldb:file:banco/no_do_banco"/> //No Derby <property name="hibernate.connection.url">jdbc:derby:banco/no_do_banco;create=true</property>
[/quote]

Poxa romarcio mais fácil ainda heheheh, foi só remover a “/” valeu![/quote]

Legal que foi útil a dica. :thumbup: