Login em página JSF

Pessoal seguinte, estou montando um pequeno projeto com banco de dados e primeiro estou fazendo uma tela de login, nessa tela preciso autenticar se o usuário esta cadastrado no banco, se sim o usuário é direcionado para outra página ( ate ai tudo bem, estou pesquisando uma forma de deixar a aplicação bem segura! ), gostaria de saber se o meu código esta bom, ainda estou fazendo a validação de usuário sem usar o Hibernate pra treinar SQl mesmo.

[code]public boolean verificaLogin(String user, String senha) {
System.out.println(“Metodo DAO”);
// site favorito no chrome que aborda login com JBOSS ??? pesquisar e
// perguntar
sql = “select * from logins where usuario=? and senha =?”;
try {
ps = this.getcon.prepareStatement(sql);
ps.setString(1, user);
ps.setString(2, senha);

		set = ps.executeQuery();

		if (set.next()) {
			return true;

		} else {
			return false;
		}
	} catch (SQLException e) {
		e.printStackTrace();

	}
	return false;
}[/code]

Outra dúvida também e na hora de cadastrar um novo funcionário no banco, como posso fazer a verificação se ja existe o usuario no banco e caso não houver cadastrar ?

[quote=rapha.java]Pessoal seguinte, estou montando um pequeno projeto com banco de dados e primeiro estou fazendo uma tela de login, nessa tela preciso autenticar se o usuário esta cadastrado no banco, se sim o usuário é direcionado para outra página ( ate ai tudo bem, estou pesquisando uma forma de deixar a aplicação bem segura! ), gostaria de saber se o meu código esta bom, ainda estou fazendo a validação de usuário sem usar o Hibernate pra treinar SQl mesmo.

[code]public boolean verificaLogin(String user, String senha) {
System.out.println(“Metodo DAO”);
// site favorito no chrome que aborda login com JBOSS ??? pesquisar e
// perguntar
sql = “select * from logins where usuario=? and senha =?”;
try {
ps = this.getcon.prepareStatement(sql);
ps.setString(1, user);
ps.setString(2, senha);

		set = ps.executeQuery();

		if (set.next()) {
			return true;

		} else {
			return false;
		}
	} catch (SQLException e) {
		e.printStackTrace();

	}
	return false;
}[/code]

Outra dúvida também e na hora de cadastrar um novo funcionário no banco, como posso fazer a verificação se ja existe o usuario no banco e caso não houver cadastrar ?[/quote]

a principio, como a coisa toda é pra fins didáticos :lol: , está ok…voce está usando o PreparedStatement e os “?” para a consulta no banco, o que é o adequado. Repare que voce nao está fechando nem o Statement nem o ResultSet, o que é um problema, visto que a sua aplicação continua segurando a conexão com o banco quando ela nao é mais necessaria. Aliás repare que voce está consultando todas as colunas da sua tabela de login, quando talvez isso nao seja necessario. Como o que voce quer é validar se esses dados existem na tabela, talvez um select count seja mais adequado.

Ah, sem querer ser chato hehe, mas o nome das tabelas, costumamos usar nomes no singular, o que no seu caso seria “login” ao invés de “logins”

Sobre a segunda questão, vai depender da regra de negocio que voce quer implementar. Você poderia, por exemplo, dado um email, verificar se tal email já existe no banco e avisar ao usuário. Também é possivel barrar esse tipo de coisa no próprio banco, o que é bom, mas tambem é bom tratar na aplicação.

Boa sorte aí com os estudos.

queria esse lance pra ve se ja existe no banco um email tbm