Consultar Login em Banco de Dados Hibernate, JPA, PrimeFaces[RESOLVIDO]

2 respostas Resolvido
M

Olá amigos,

Estou com um problema na validação de dados com os dados que são passados da View e os dados resgatados no Banco.
Criei alguns rastreios, e os mesmos confirmam que os dados estão sendo passados corretamente, porém, o erro ocorre na validação, segue as classes:

UsuarioDAO:
package dao;

import java.io.Serializable;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import model.Usuario;

public class UsuarioDAO implements Serializable {

	Usuario usuario = new Usuario();
	
	private static final long serialVersionUID = 1L;

	public void SalvarUsuario (Usuario usuario){

		System.out.println("chegouaqui");
		try {

			EntityManagerFactory emf = Persistence.createEntityManagerFactory("calcPU");
			EntityManager em = emf.createEntityManager();

			em.getTransaction().begin();
			em.persist(usuario);
			em.getTransaction().commit();

			System.out.println("Usuario salvo com sucesso!");


		} catch (Exception e) {
			e.printStackTrace();


		}
	}

	public void PesquisarLogin(String nomeCpfPesq, String senha) {
		System.out.println("CHEGOU2");

		try {

			EntityManagerFactory emf = Persistence.createEntityManagerFactory("calcPU");
			EntityManager em = emf.createEntityManager();

			Usuario pesq = em.find(Usuario.class, nomeCpfPesq);
			
			System.out.println(pesq.getCpf());
			System.out.println(nomeCpfPesq);
			
			if(nomeCpfPesq==pesq.getCpf()){
				
				System.out.println("Encontrado com Sucesso!1");
			
		}else{
			System.out.println("Usuario não encontrado!!!");
			System.out.println(pesq.getCpf());
			System.out.println(nomeCpfPesq);
		}
	}finally {
		
	}

	}
}

UsuaBean.java

package control;

import java.io.Serializable;


import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import dao.UsuarioDAO;
import model.Usuario;

@ManagedBean
@SessionScoped
public class UsuarioBean implements Serializable {
	
	private Usuario usuario = new Usuario();
	private static final long serialVersionUID = 1L;
	
	private UsuarioDAO usuariodao = new UsuarioDAO();
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
public void salvarUsuario(Usuario usuario){
	    
		usuariodao.SalvarUsuario(this.usuario);
		
	}

public void pesquisaLogin(){
	
	System.out.println("CHEGOU !!!");
	
	//System.out.println(usuario.getNome());
	String nomeCpf, senha;
	
	nomeCpf = usuario.getCpf();
	senha = usuario.getSenha();
	
	System.out.println(nomeCpf);
	System.out.println(senha);
	usuariodao.PesquisarLogin(nomeCpf,senha);
	
	}
}
`

login.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">

	<h:head>
	<h:outputStylesheet library="css" name="estilos.css" />
</h:head>

<h:body>
<h:form id="formulario">
	<p:layout fullPage="true">
		<div id="telaLogin" align="center">
			<p:layoutUnit position="center" size="400" resizable="true"
				closable="true" collapsible="true">
				<h:panelGrid id="pLogin" cellspacing="10" resizable="true"
					bgcolor="white" columns="3"
					style="position: absolute;top:140px; left: 450px;">
					
					<p:graphicImage value="/imgs/logo-editada.jpg" width="140px" height="70px" style="position: absolute; bottom:200px; left:200px;" />
					<p:outputLabel style="font-size:13px;position:absolute;left:120px;">Digite aqui os dados para cadastro:</p:outputLabel><br/>
					<p:growl id="growl" sticky="true"/>
					<p:outputLabel>Nome:</p:outputLabel>
					<p:inputMask mask="[CPF removido]" id="cpf" required="true" value="#{usuarioBean.usuario.cpf}" ></p:inputMask><br/>
					<p:outputLabel>Senha:</p:outputLabel>
					<p:password id="senha" value="#{usuarioBean.usuario.senha}" label="Senha" required="true"></p:password><br/>
					<p:commandButton update="pLogin" action="#{usuarioBean.pesquisaLogin()}" value="Entrar" style="position:absolute;top:290;left:140px;" />
					<p:button style="position: absolute;left:220px;" value="Cadastrar" href="/faces/cadastro.xhtml"></p:button>
					<p:link value="Esqueci minha senha" style="position:absolute;top:370px;left:210px;font-size:12px;"></p:link>
				</h:panelGrid>
					
			</p:layoutUnit>
		</div>
		
	</p:layout>
	</h:form>
</h:body>
</html>

Resultado dos prints no código:

`CHEGOU !!!

[CPF removido]
222
CHEGOU2
[EL Info]: 2016-09-06 15:32:45.544–ServerSession[telefone removido])–EclipseLink, version: Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd
Tue Sep 06 15:32:45 BRT 2016 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Tue Sep 06 15:32:45 BRT 2016 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[EL Info]: connection: 2016-09-06 15:32:45.902–ServerSession[telefone removido])–file:/C:/Users/Mayque.silva/workspace/MayqueWorkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/projetoCalc-me/WEB-INF/classes/_calcPU login successful
[CPF removido]
[CPF removido]
Usuario não encontrado!!!
[CPF removido]
[CPF removido]

Conforme os prints… ele está comparando números iguais, porém, diz que está incorreto…

2 Respostas

P
Solucao aceita

primeira coisa, em se tratando de objetos, não faça uso do operador ==

isso verifica se as duas referencias apontam para o mesmo objeto

String a, b;
a = "lol";
b = a;
if( a == b ) { /* mesmo objeto */ }

isso é totalmente diferente das strings terem o mesmo conteudo. para isso vc usa o metodo equals();

String a, b;
a = "lol";
b = "lol";
if( a.equals(b) ) { /* mesmo conteudo */ }

é claro que, nesse exemplo, o == e metodo equals retornaram a mesma coisa ( por conta do pool de strings, e de strings serem imutaveis ).

agora, meu amigo, não salve a senha no banco de dados. se isso é algo minimamente serio salve um hash ( sha1 ou md5 ou seja la o que for ) da senha.

M

Olá peczenyj,

Obrigado pela resposta, realmente após a alteração sugerida funcionou.
É apenas um projeto, porém, vou procurar algo que eu consigo fazer com sha1 md5 da senha.
Obrigado.

Criado 6 de setembro de 2016
Ultima resposta 6 de set. de 2016
Respostas 2
Participantes 2