Hibernate - hibernate.cfg.xml

2 respostas
insuportavel

Bom dia a todos.

Eu tenho uma dúvida a respeito do hibernate.cfg.xml

Esta eh a session-factory so meu arquivo responsavel pela conexao com o Banco de Dados:

<property name ="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:XE</property>
<property name ="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name ="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name ="hibernate.connection.username">marcelo</property>
<property name ="hibernate.connection.password">adm2705#</property>

O Problema eh que eu estou usando ai o meu usuario e minha senha para conexao.

Gostaria de saber como posso fazer para que isto fique “dinamico” (talvez não seja esta a palavra) de forma que qdo qq usuario for se conectar ao Banco eu possa passar/pegar o usuario e a senha dele para conexao! ! !

Muito obrigado a todos e um excelente dia!
:smiley:

2 Respostas

_fs

Retire o usuário e senha do cfg.xml e passe-os num objeto Properties ao inicializar a SessionFactory:

Properties p = new Properties();
p.setProperty( "hibernate.connection.username", user );
p.setProperty( "hibernate.connection.password", password );

Configuration conf = new Configuration().setProperties( p );
factory = conf.configure().buildSessionFactory();
insuportavel

Ei LIPE, este é o meu HibernateSessionFactory:

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateSessionFactory {
	private static final Logger logger = Logger.getLogger(HibernateSessionFactory.class);
	private static final SessionFactory sessionFactory;
	private static ThreadLocal<Session> sessions = new ThreadLocal<Session>();
	
	static{
		sessionFactory = new AnnotationConfiguration().configure()
							.buildSessionFactory();
	}
	
	public static Session getNewSession() throws HibernateException{
		if (sessions.get() != null){
			logger.warn("There was a session for this thread already. I will recreate");
		}
		sessions.set(sessionFactory.openSession());
		return sessions.get();		
	}
	
	public static void dispose(){
		if(sessions.get() == null){
			logger.warn("Session was already dispose!!!");
		}
		sessions.set(null);
	}
	public static Session getSession(){
		if (sessions.get()==null){
			sessions.set(sessionFactory.openSession());
		}
		return sessions.get();
		
	}

}

Pelo que entendi então eh ele que recebera o Propertie ?!?!

Criado 5 de outubro de 2006
Ultima resposta 6 de out. de 2006
Respostas 2
Participantes 2