Ajuda no Himernate.properties

Boa tarde!

Gostaria de uma ajuda de vocês, como fasso para que no Himernate.properties o usuário e senha sejam passados pelo o usuário e não dichar ele explicito no arquivo.

Como fasso para que o hibernate retorne o registro que acabou de ser inserido?

Grato
Wesley Oliveira.

himernate.properties?
Você vai precisar de uma classe que escreva no arquivo de properties, mas não é algo interessante de se fazer.

Dai nesse caso o Usuário e a Senha você vai ter que declarar de maneira programática. Tem como fazer isso na documentação que vem com o Hibernate, da uma olhada.

A forma programática para te ajudar:

[code]AnnotationConfiguration configuration = new AnnotationConfiguration();

	configuration.setProperty("hibernate.connection.username", "root");
	configuration.setProperty("hibernate.connection.password", "");
	configuration.setProperty("hibernate.connection.url",
			"jdbc:mysql://localhost:3306/banco_dados");

	configuration.setProperty("hibernate.connection.driver_class",
			"com.mysql.jdbc.Driver");
	configuration.setProperty("hibernate.dialect",
			"org.hibernate.dialect.MySQL5InnoDBDialect");
	configuration.setProperty("hibernate.hbm2ddl.auto", "update");
	configuration.setProperty("show_sql", "false");
	configuration.setProperty("format_sql", "false");
	configuration.setProperty("hibernate.connection.provider_class",
			"org.hibernate.connection.C3P0ConnectionProvider");
	configuration.setProperty("hibernate.c3p0.acquire_increment", "2");
	configuration.setProperty("hibernate.c3p0.timeout", "25200");
	configuration.setProperty("hibernate.c3p0.min_size", "2");
	configuration.setProperty("hibernate.c3p0.max_size", "10");
	configuration.setProperty("hibernate.c3p0.max_statements", "0");

	configuration.setProperty("hibernate.generate_statistics", "false");
	configuration.addAnnotatedClass(Classes.class);
	this.sessionFactory = configuration.buildSessionFactory();[/code]

Agradeço a ajuda de todos, aparentemente esta funcionando, estou fazendo mais alguns testes para dar o veridito final.

segue o código, aceito sugestões sobre melhorias.

[code]public class HibernateUtil {

private static SessionFactory sessionFactory;
private static String str_usuario;
private static String str_senha;

public static SessionFactory getSessionFactory(String user, String senha)
{
	str_usuario = user;
	str_senha = senha;
	
	if( sessionFactory == null )
	{	
		AnnotationConfiguration cfg = new AnnotationConfiguration();
    	//cfg.configure("/hibernate.cfg.xml");
    	
		cfg.setProperty("hibernate.connection.username", str_usuario);   
		cfg.setProperty("hibernate.connection.password", str_senha);   
		cfg.setProperty("hibernate.connection.url","jdbc:postgresql://localhost:5432/2011");
		cfg.setProperty("hibernate.connection.driver_class","org.postgresql.Driver");   
		cfg.setProperty("hibernate.dialect","org.hibernate.dialect.PostgreSQLDialect");   
		cfg.setProperty("hibernate.hbm2ddl.auto", "update");   
		cfg.setProperty("show_sql", "true");   
		cfg.setProperty("format_sql", "true");   
		
		/***************************************************************************************************************
		cfg.setProperty("hibernate.connection.provider_class","org.hibernate.connection.C3P0ConnectionProvider");   
		cfg.setProperty("hibernate.c3p0.acquire_increment", "2");   
		cfg.setProperty("hibernate.c3p0.timeout", "25200");   
		cfg.setProperty("hibernate.c3p0.min_size", "2");   
		cfg.setProperty("hibernate.c3p0.max_size", "10");   
		cfg.setProperty("hibernate.c3p0.max_statements", "0");   
		cfg.setProperty("hibernate.generate_statistics", "false");   
		****************************************************************************************************************/

    	cfg.addAnnotatedClass(Usuario.class);
    	sessionFactory = cfg.buildSessionFactory();
	}
	
	return sessionFactory;
	
}[/code]

e na chamada esta assim:

[code]private UsuarioDao usuarioDao = new UsuarioDao();
private UsuarioUtils utils = new UsuarioUtils();

public Usuario HibernateTeste(String usuario, String senha) throws Exception{
	
	Usuario usuarioLogado = usuarioDao.autenticar(usuario, senha);
	
	return usuarioLogado;
	
}[/code]

Grato

Essa autenticação é, na verdade, a autenticação de usuários?

Ainda não entendi o exemplo prático disso. Cada usuário do seu sistema terá um user no banco?

Ah! É de extrema importância que você configure o C3P0.

Principalmente se você usar o banco de dados MySQL. Pois depois de 8 Horas inativo, o MySQL fecha a conexão e vc vai ter erro de JDBC Commit Failed (sem nem saber porque isso ocorre)

Para tanto, você deve adicionar um JAR referente ao C3P0: c3p0-0.9.1.jar

Se você quiser, eu posso te explicar para que serve cada consiguração do C3P0.

Rafael, bom dia!

é exatamente isso, cada usuário tera sua propria senha no banco para eu aproveitar a politica de acesso as tabelas.

eu aceito a explicação sobre o C3P0, meu banco é o PostgreSql.

Gratro