Hibernate-Properties + web.xml, alguém sabe como configurar?

4 respostas
lessandronp

Olá pessoal, boa tarde.
Estou desenvolvendo um projeto aki com hibernate annotations, criei o meu hibernate.properties que tem a configuração de drivers, base e etc:

hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost/teste
hibernate.connection.username=root
hibernate.connection.password=lnp1812
hibernate.hbm2ddl.auto=update

Tenho uma classe HibernateUtil que possui todos os métodos para buscar e inserir dados na base:

package utils;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

public class HibernateUtil {

private static SessionFactory factory;

static {
	try {
	     AnnotationConfiguration cfg = new AnnotationConfiguration();
	     //cfg.addAnnotatedClass(Aluno.class);   <== aqui passo as classes
	     factory = cfg.buildSessionFactory();	
	} catch (Exception e) {
		factory = null;
	}
}

public static Session getSession() {
	return factory.openSession();
}

public boolean insert(Object c) throws Exception {
	Session session = factory.openSession();
	Transaction tr = null;
	try {
		tr = session.beginTransaction();
		session.save(c);
		session.flush();
		tr.commit();
		if (tr.wasCommitted())
			return true;
	} catch (Exception e) {
		if (tr != null)
			tr.rollback();
		return false;
	}
	session.close();
	return false;
}

public static Object recupera(String campo, String valor, String qry) {
	Session session = factory.openSession();
	Transaction tr = session.beginTransaction();
	Object obj = null;
	Query query = session.createQuery(qry);
	query.setParameter(campo, valor);
	return (Object) query.list().get(0);
}

public static Object recuperaID(int id, String qry) {
	Session session = factory.openSession();
	Transaction tr = session.beginTransaction();
	Object obj = null;
	Query query = session.createQuery(qry);
	query.setParameter("id", id);
	Object ob = (Object) query.list().get(0);
	session.close();
	return ob;
}

public boolean update(Object obj) {
	Session session = factory.openSession();
	Transaction tr = session.beginTransaction();
	session.update(obj);
	session.flush();
	tr.commit();
	if (tr.wasCommitted())
		return true;
	return false;
}

public boolean delete(Object obj) {
	Session session = factory.openSession();
	Transaction tr = session.beginTransaction();
	session.delete(obj);
	session.flush();
	tr.commit();
	if (tr.wasCommitted()) {
		session.close();
		return true;
	}
	session.close();
	return false;
}

}

Agora estou com um problema, como configurar no web.xml para que enxergue o meu hibernate.properties?
E teria necessidade de colocar essa classe HibernateUtil no web.xml? Já andei procurando no google, e até aqui no GUJ, mas ninguém tem uma dúvida parecida com a minha.
Agradeço desde já pela atenção,
Abraços,
Lessandro

4 Respostas

g4j

Acredito que não tenha porque vc mencionar o Hibernate no web.xml.

O que geralmente se faz, é configurar um pool de conexão para acesso via jndi no web.xml, e no hibernate.cfg.xml vc conseguir usar esse pool. É isso que vc quer?

lessandronp

Olha, infelizmente nao sei o q seria um JNDI.
O que eu tentei fazer foi utilizar o hibernate.properties dentro do HibernateUtill.java, pois ao utilizar anotação, ele consegue enxergar o properties.
Mas não sei se isso seria automático, afinal ao abrir o sistema, na tela de login, eu tenho um controller q acessa o dao, que por sua vez chama o hibernate e verifica se existe na base.
Se tiver como vc me detalhar mais, acho q talvez eu possa utilizar essa técnica q vc está mencionando.
vlw
brigadão

g4j

lessandronp:

Se tiver como vc me detalhar mais, acho q talvez eu possa utilizar essa técnica q vc está mencionando.
brigadão

Claro:

http://www.google.com.br/search?hl=pt-BR&q=hibernate+%2B+tomcat+%2B+jndi&btnG=Pesquisa+Google&meta=

t+

lessandronp

boa.
Voa dar uma lida pra ver isso ae
vlw pela grande ajuda
abração ae
t+

Criado 30 de agosto de 2008
Ultima resposta 31 de ago. de 2008
Respostas 4
Participantes 2