Sistema de Login Falho. Ajuda!

eu tenho dois códigos, o código executável, um classe de conectar ao BD e uma classe de controle de ação.

meu botão de login, está assim,

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { LoginController lg = new LoginController(); String senha = jTextField2.getText(); String login = jTextField1.getText(); lg.Checar(login, senha); }

como podem ver, a senha nao está nem em password.

a conexão

public Connection getConexao(String driver, String urlConexao, String user, String pass) { try { Class.forName(driver); conn = (Connection)DriverManager.getConnection(urlConexao, user, pass); } catch (ClassNotFoundException e) { System.out.println("Exc: ControladorConexao - Driver nao encontrado."); System.out.println(e); } catch (SQLException e) { System.out.println("Exc: ControladorConexao - Erro ao criar uma nova conexao."); System.out.println(e); } return this.conn; }

o metódo Checar:

[code]public void Checar(String login, String senha){

         try{
             pstmt = (PreparedStatement) this.conn.prepareStatement("SELECT login,senha FROM usuario WHERE login=" +login+ " AND senha=" +senha);
             ResultSet rs = (ResultSet) pstmt.executeQuery();
              if ( rs.next() ){ 
                    if(login.equalsIgnoreCase(login) && senha.equals(senha)){
                        entrada.setVisible(true);
                    }
              }   
          }catch(SQLException e){
                JOptionPane.showMessageDialog(null,"Erro " +e);
         }
     
}[/code]

o que há de errado ?

posta o erro! que está dando

no SQLException ta dando: com.mysql.jdbc.excepetions.MySQLSyntaxErrorException: Unknown column ‘lucas.lopes’ in ‘where clause’.

qeria saber se a lógica do login está certo ?

Olá Lucas,

troque

this.conn.prepareStatement("SELECT login,senha FROM usuario WHERE login=" +login+ " AND senha=" +senha);  

por

this.conn.prepareStatement("SELECT login,senha FROM usuario WHERE login=? AND senha=?");  

e adicione na linha de baixo, antes de executar o SQL
pstmt.setParameter(0, login);
pstmt.setParameter(1, senha);

provavelmente o statement está identificando lucas.lopes um campo de uma tabela, por isso troquei o uso para o setParameter();
não me lembro corretamente da sintaxe, mais qualquer coisa procure por setParameter da classe PreparedStatement

sobre a lógica do metodo checar() eu faria de um jeito diferente,

retornando uma variavel bool, mais ou menos assim

  public bool Checar(String usuario, String senha){
         //verifica se existe um usuario no banco de dados com esse usuario e senha e se existe retorna true somente, senao false;
  }

espero ter ajudado, abraços;

obrigado Kiddo, o erro que estava acusando foi solucionado,
mas está aparecendo outro.

java.sql.SQLException: Parameter index out of range (0 <1).

Tente trocar para

pstmt.setParameter(1, login);
pstmt.setParameter(2, senha);

provavelmente por que não tem o index 0
entrão vamos trocar para 1, 2

referencia

http://www.coderanch.com/t/307234/JDBC/java/java-sql-SQLException-Parameter-index

certo, os Exception do SQL nao acusa mais nada,
muito obrigado, Kiddo,
mas agora acusou muitos erros.
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at my.academia.LoginController.getCheca(LoginController.java:38)
at my.academia.Login.jButton1ActionPerformed(Login.java:118)
at my.academia.Login.access$000(Login.java:6)
at my.academia.Login$1.actionPerformed(Login.java:37)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

eu estou no caminho certo pelo menos ?
a lógica de checagem de login e senha, está certo?

obrigado pela atenção e desculpe a ignorancia, pois é meu primeiro projeto com login e senha :smiley:

Olá,
esse erro ocorre geralemente quando um objeto é nulo “java.lang.NullPointerException”
"null"
provavelmente a variavel entrada está nula
nisso eu não vou poder te ajudar com precisão, procure debugar a aplicação

e veja em qual linha ocorre o erro,
veja a variavel que está nula
e instancie a mesma onde lhe for necessario

*se entrada for um formulario ou componente de tela, instancie no construtor do seu projeto

[quote=Tenkara Kiddo]Olá,
esse erro ocorre geralemente quando um objeto é nulo
"null"
provavelmente a variavel entrada está nula
nisso eu não vou poder te ajudar com precisão, procure debugar a aplicação

e veja em qual linha ocorre o erro,
veja a variavel que está nula
e instancie a mesma onde lhe for necessario

*se entrada for um formulario ou componente de tela, instancie no construtor do seu projeto

[/quote]

você está no caminho correto, so tente procurar mais exemplos de telas de login na internet.