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

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="999.999.999-99" 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 !!!

034.142.831-77
222
CHEGOU2
[EL Info]: 2016-09-06 15:32:45.544–ServerSession(1346838398)–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(1346838398)–file:/C:/Users/Mayque.silva/workspace/MayqueWorkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/projetoCalc-me/WEB-INF/classes/_calcPU login successful
034.142.831-77
034.142.831-77
Usuario não encontrado!!!
034.142.831-77
034.142.831-77

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

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.

1 curtida

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.