Hibernate+JNDI

5 respostas
alves.Felipe

ola a todos…

estou estudando hibernate e estou com algumas duvidas básicas…

por exemplo, se eu for criar uma aplicação web usando Hibernate e vinculando com JNDI…
minha configuração do bd tem que ficar em algum arquivo do servidor? Assim, não preciso configurar o C3P0
no arquivo de configuração do hibernate? é meu servidor que vai controlar minhas conexões?
se eu manter a configuração do bd no arquivo de configuração do hibernate, então seria JDBC certo?!qual é a melhor opção?

5 Respostas

Andre_Fonseca
alves.Felipe:
ola a todos..

estou estudando hibernate e estou com algumas duvidas básicas...

por exemplo, se eu for criar uma aplicação web usando Hibernate e vinculando com JNDI..
minha configuração do bd tem que ficar em algum arquivo do servidor? Assim, não preciso configurar o C3P0
no arquivo de configuração do hibernate? é meu servidor que vai controlar minhas conexões?
se eu manter a configuração do bd no arquivo de configuração do hibernate, então seria JDBC certo?!qual é a melhor opção?

Oi

Quando você fizer o deploy da aplicação web o arquivo de configuração do hibernate - hibernate.properties ou hibernate.xml - irá junto com o .war para o servidor

O JNDI nada mais é que uma interface que o servidor irá utilizar para achar um recurso

Na hora da sua aplicação buscar o recurso ela irá utilizar o nome do JNDI configurado no servidor

Um exemplo usando o Tomcat seria assim

// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// Look up our data source
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");

// Allocate and use a connection from the pool
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();

Dá uma olhada na documentação

abs

alves.Felipe

eu consegui fazer um exemplo seguindo o tutorial do tom cat6…

mas tem diferença configurar isso no servidor ou no hibernate??

Andre_Fonseca

oi

não sei se entendi a sua pergunta

o JNDI é apenas uma forma do servidor encontrar o recurso - no caso uma configuração com o Banco de Dados -, como poderia ser uma configuração com uma fila JMS, File System, etc

se a sua aplicação web usa hibernate o fato de você usar JNDI não quer dizer que você não precise mais do arquivo de configuração do hibernate…

abs

alves.Felipe

acho que não me expressei bem…

tipo… pq e qdo é melhor usar ou não o JNDI ? entende?
quero saber pq que jndi é “melhor” em aplicações web

Andre_Fonseca

oi

eu não disse que é melhor ou pior, é apenas uma forma da sua aplicação java buscar um recurso, seja um acesso a banco, fila JMS, arquivo, etc

dê uma olhada no tutorial da SUN, vai ajudar a te esclarecer umas dúvidas…

qualquer coisa posta aqui

abs

Criado 7 de janeiro de 2009
Ultima resposta 8 de jan. de 2009
Respostas 5
Participantes 2