[RESOLVIDO]usando o searchByCod

13 respostas
rosawestphal

bom pessoal me ajudem, estou tentando valisdar o login de um sistema, mas está me pedindo par fazer uma classe, abaixo o codigo:

codigo do banco de dados: [/quote]
public ValidaLogin searchByCod(String vl) throws SQLException {
        
        String sql = "select from tab_login where login , senha like? ";
        // Compila / prepara instrução SQL para execução
        PreparedStatement stmt = (PreparedStatement) conexaoLogin.prepareStatement(sql);
        // Preenche parâmetros (?) da instrução SQL
        stmt.setString(1, "login");
        stmt.setString(2, "senha");
        // Executa instrução SQL de consulta
        // Armazena resultado na consulta em um objeto do tipo ResultSet
        ResultSet rs = stmt.executeQuery();
        // Instancia novo objeto do tipo login
        Login validalogin = new Login();

        while (rs.next()) {
            validalogin.setLogin(rs.getString("login"));
            validalogin.setSenha(rs.getString("senha"));
        }

        rs.close();
        stmt.close();
        return (validalogin);
    }[quote]

e na janela para chamar a classe ValidaLogin

[quote]
private void jBAcessarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        if (jTFUsuario.getText().equals("") || jPSenha.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Os campos não podem ser vazios");
        } else {
            Login vl = new Login();
            vl.setLogin(jTFUsuario.getText());
            vl.setSenha(jPSenha.getText());
            
            try {
                TelaLoginDao dao = new TelaLoginDao();
                vl = dao.ValidaLogin.searchByCod(vl);
                
                    JOptionPane.showMessageDialog(this, "Tela_Principal");
                    System.exit(0);
                 
            } catch (SQLException ex) {
               JOptionPane.showMessageDialog(null, "Senha ou login não conferem" + ex);
            }

        }

    }

por favor onde estou errando

13 Respostas

marcosharbs

teu comando sql ta errado

select login, senha from tab_login where login = ? and  senha = ?
rosawestphal

já arrumei o comando sql, mas mesmo assim esta aparecendo erro no ValidaLogin

henriqueluz

Qual é o erro?

rosawestphal

diz que tenho que criar uma classe ValidaLogin no pacote

marcosharbs

da uma olhada se o import da classe ValidLogin está correto
e também o modificador da classe ValidaLogin
melhor postar o código fonte inteiro pro pessoal poder achar o erro

rosawestphal

tela login

package peculio_forms;

import Logica.ValidaLogin;
import dao_peculio.TelaLoginDao;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author ROSANGELA
 */
public class Tela_Login extends javax.swing.JFrame {

    /** Creates new form Tela_Login */
    public Tela_Login() {
        initComponents();
    }         

    private void jBAcessarActionPerformed(java.awt.event.ActionEvent evt) {                                          
                
        if (jTFUsuario.getText().equals("") || jPSenha.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Os campos não podem ser vazios");
        } else {
            ValidaLogin vl = new ValidaLogin();
            vl.setLogin(jTFUsuario.getText());
            vl.setSenha(jPSenha.getText());
            
            try {
                TelaLoginDao dao = new TelaLoginDao();
                vl = dao.ValidaLogin.searchByCod(vl);    /*nesta linha está dizendo que tenho que fazer uma classe ValidaLogin no pacote onde fica os dados do banco de dados*/           
                    JOptionPane.showMessageDialog(this, "Tela_Principal");
                    System.exit(0);                 
            } catch (SQLException ex) {
               JOptionPane.showMessageDialog(null, "Senha ou login não conferem" + ex);
            }

        }

    }                                         

    private void jBSairActionPerformed(java.awt.event.ActionEvent evt) {                                       
        System.exit(0);                
        
    }
tela login dao
package dao_peculio;

import Logica.ValidaLogin;
import bd.peculio.CriaConexao;
import com.mysql.jdbc.PreparedStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author ROSANGELA
 */
public class TelaLoginDao {
    
    private Connection conexaoLogin;
    
    public TelaLoginDao() throws SQLException{
        // Recupera conexão com o banco de dados
        this.conexaoLogin = CriaConexao.getConexao();
    }
     
        
    public ValidaLogin searchByCod(String vl) throws SQLException {
        
        String sql = "select login , senha from tab_login where login = ? , senha = ? ";
        // Compila / prepara instrução SQL para execução
        PreparedStatement stmt = (PreparedStatement) conexaoLogin.prepareStatement(sql);
        // Preenche parâmetros (?) da instrução SQL
        stmt.setString(1, "login");
        stmt.setString(2, "senha");
        // Executa instrução SQL de consulta
        // Armazena resultado na consulta em um objeto do tipo ResultSet
        ResultSet rs = stmt.executeQuery();
        // Instancia novo objeto do tipo login
        ValidaLogin validalogin = new ValidaLogin();

        while (rs.next()) {
            validalogin.setLogin(rs.getString("login"));
            validalogin.setSenha(rs.getString("senha"));
        }

        rs.close();
        stmt.close();
        return (validalogin);
    }
}
classe ValidaLogin
package Logica;

/**
 *
 * @author ROSANGELA
 */
public class ValidaLogin {
    
    private long id_login;
    private String login;
    private String senha  ;

    public long getId_login() {
        return id_login;
    }

    public void setId_login(long id_login) {
        this.id_login = id_login;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
}
henriqueluz

Opa,

ja encontrei seu erro. Troque esta linha:

vl = dao.ValidaLogin.searchByCod(vl);

Por:

vl = dao.searchByCod(vl);

Explicação. Você instanciou um objeto TelaLoginDao que possui um metodo searchByCod. Não existe nenhum atributo ValidaLogin. Você referencia o método da classe Dao com o seu objeto diretamente.

Abraços e sucesso!

rosawestphal

eu novamente, hehe. esta dando erro na consulta sql, esta me retornando com senha ou login invalido, acho que não está passando
pelo:

public ValidaLogin searchByCod(String vl) throws SQLException
henriqueluz

O seu método de validação está procurando por algum usuario com os valores dos campos login = “login” e senha = “senha”, já que você está setando:

stmt.setString(1, "login"); stmt.setString(2, "senha");

Altere a assinatura do seu método para:

public ValidaLogin searchByCod(ValidaLogin v1) throws SQLException

E depois:

stmt.setString(1, v1.getLogin()); stmt.setString(2, v1.getSenha()); //Notou a diferença?

Abs,

rosawestphal

é verdade, um erro bobo. já arrumei, mas uma coisinha. esta dando o seguinte erro

tela de erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
You have an error in your syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near
'senha ='1234" at line1

henriqueluz

Altere esta linha:

String sql = "select login , senha from tab_login where login = ? , senha = ? ";

Para:

String sql = "select login , senha from tab_login where login = ? AND senha = ? ";
rosawestphal
rosawestphal:
bom pessoal me ajudem, estou tentando valisdar o login de um sistema, mas está me pedindo par fazer uma classe, abaixo o codigo: codigo do banco de dados:
public ValidaLogin searchByCod(String vl) throws SQLException {
        
        String sql = "select from tab_login where login , senha like? ";
        // Compila / prepara instrução SQL para execução
        PreparedStatement stmt = (PreparedStatement) conexaoLogin.prepareStatement(sql);
        // Preenche parâmetros (?) da instrução SQL
        stmt.setString(1, "login");
        stmt.setString(2, "senha");
        // Executa instrução SQL de consulta
        // Armazena resultado na consulta em um objeto do tipo ResultSet
        ResultSet rs = stmt.executeQuery();
        // Instancia novo objeto do tipo login
        Login validalogin = new Login();

        while (rs.next()) {
            validalogin.setLogin(rs.getString("login"));
            validalogin.setSenha(rs.getString("senha"));
        }

        rs.close();
        stmt.close();
        return (validalogin);
    }[quote]

e na janela para chamar a classe ValidaLogin

private void jBAcessarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        if (jTFUsuario.getText().equals("") || jPSenha.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Os campos não podem ser vazios");
        } else {
            Login vl = new Login();
            vl.setLogin(jTFUsuario.getText());
            vl.setSenha(jPSenha.getText());
            
            try {
                TelaLoginDao dao = new TelaLoginDao();
                vl = dao.ValidaLogin.searchByCod(vl);
                
                    JOptionPane.showMessageDialog(this, "Tela_Principal");
                    System.exit(0);
                 
            } catch (SQLException ex) {
               JOptionPane.showMessageDialog(null, "Senha ou login não conferem" + ex);
            }

        }

    }

por favor onde estou errando

rosawestphal

OBRIGADA!!!

Criado 12 de agosto de 2011
Ultima resposta 12 de ago. de 2011
Respostas 13
Participantes 3