Ajuda, Como Validar Login e Senha no java Desktop [ RESOLVIDO ]

4 respostas
by.fogaca

PRECISO DE UMA AJUDA:
Bom, eu ja criei o Jform, o jtexfieldLogin, JpassSenha e dois botões Gravar e Cancelar,
Ja criei uma Classe conexão, pois bem preciso que depois que o usuário digitar o login e senha
faça uma verificação no banco (SQLServer) se o usuário existe ou não se existir chama a tela de menu
senão aparece uma mensagem de usuário invalido e volta para a tela login.

AGRADEÇO DESDE JÁ PELA FORÇA.

import br.com.fba.conexao.Conexao_banco;


/**
 * @author Fogaca
 */
public class Login extends javax.swing.JFrame {
    
    Conexao_banco con_login;

    //===================================================================================
   public String url ;
   public String texto;     
   public String caminho1 = "jdbc:jtds:sqlserver://localhost:1433/db_oficial";
   public String caminho2 = "jdbc:jtds:sqlserver://localhost:1433/db_teste";
   public String titulo1 = "BASE OFICIAL";
   public String titulo2 = "BASE TESTE";
   //===================================================================================

    /** CONSTRUTOR */
    public Login() {
        initComponents();
    }

   
 
	//MEU COMBOBOX QUE ME SELECIONA QUAL CAMINHO/BANCO MINHA APLICAÇÃO VAI SE CONECTAR
    private void ComboBancoLoginActionPerformed(java.awt.event.ActionEvent evt) {                                                

        if(evt.getActionCommand().equals("comboBoxChanged"))
        {
        if(ComboBancoLogin.getSelectedItem().equals("BASE OFICIAL")){
            this.texto = titulo1;
            this.url = caminho1;
            lbLoginLogin.setText(texto);
        }else if(ComboBancoLogin.getSelectedItem().equals("BASE TESTE")){
            this.texto = titulo2;
            this.url = caminho2;
            lbLoginLogin.setText(texto);
        }else if(ComboBancoLogin.getSelectedItem().equals("Selecionar Base...")){
            this.url = "";
          }
        }

    }                                               
	
	//BOTÃO CANCELA LOGIN
    private void btCancelaLoginActionPerformed(java.awt.event.ActionEvent evt) {                                             
        dispose();
    }                                              
	
	
	/*
	PRECISO VAZER A VALIDAÇÃO NESTE BOTÃO APÓS DEFINIR QUAL CAMINHO ELE IRÁ SE CONECTAR.
	*/
	//BOTÃO QUE CONFIRMA LOGIN, PASSA O CAMINHO DO BANCO E CHAMA A TELA DE MENU PRINCIPAL
    private void btConfirmaLoginActionPerformed(java.awt.event.ActionEvent evt) { 
	
        new Principal(this.url, this.texto).show();//PARAMETROS QUE A TELA PRINCIPAL IRA RECEBER
        dispose();

    }                                               

    //METODO MAIN DA MINHA TELA LOGIN
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Login().setVisible(true);
            }
        });
    }
  
}

4 Respostas

kenneth

Ola,

Aparentemente voce esta bem no comeco do aprendizado…
De uma forma geral, voce precisa:

  • Conectar ao banco
  • Fazer uma SELECT para recuperar as informacoes do usuario
  • Comparar com o que foi digitado

Se NAO for valido, da uma mensagem, se for valido, faz um

new Principal(....

Tutorial do GUJ sobre JDBC: http://www.guj.com.br/articles/7

Valeu!

P

tenta fazer assim se os campos de login e senha não forem vazios pesquisa na tabela onde vc esta salvando os usuarios e ve se eles existem

try{String h; resultado=comando.executeQuery("select nome from usuario where senha='"+senha+"'"); if(resultado.next()) { h=resultado.getObject(1).toString(); if(h.equalsIgnoreCase(nome)) {JOptionPane.showMessageDialog(null, "Usuario encontrado"); //se exise vc cria um objeto do seu menu principal new MenuPrincipal();} else JOptionPane.showMessageDialog(null, "Este usuario não existe"); } } catch(SQLException e) { e.printStackTrace(); }
espero q te ajude!

discorpio

Bom dia a todos.

Enxugando um pouco o seu código:

// Para que tantas variáveis se estas tres resolvem
 //===================================================================================   
   public String url ;         
   public final String BASE_OFICIAL = "jdbc:jtds:sqlserver://localhost:1433/db_oficial";   
   public final String BASE_TESTE = "jdbc:jtds:sqlserver://localhost:1433/db_teste";   
   //===================================================================================   
  
    /** CONSTRUTOR */   
    public Login() {   
        initComponents();   
    }   
  
     
  
    //MEU COMBOBOX QUE ME SELECIONA QUAL CAMINHO/BANCO MINHA APLICAÇÃO VAI SE CONECTAR   
    private void ComboBancoLoginActionPerformed(java.awt.event.ActionEvent evt) {                                                   
  
        if(evt.getActionCommand().equals("comboBoxChanged"))   
        {   
        if(ComboBancoLogin.getSelectedItem().equals("BASE OFICIAL")){   
            this.url = BASE_OFICIAL;   
            lbLoginLogin.setText("Base Oficial");   
        }else if(ComboBancoLogin.getSelectedItem().equals("BASE TESTE")){    
            this.url = BASE_TESTE;   
            lbLoginLogin.setText("Base Teste");   
        }else if(ComboBancoLogin.getSelectedItem().equals("Selecionar Base...")){   
            this.url = "";
            lblLoginLogin.setText("Selecione a base");   
          }   
        }   
    }

Quanto a conexão, voce pode usar o código do nosso amigo Paty_trind que está perfeito. assim:

//BOTÃO QUE CONFIRMA LOGIN, PASSA O CAMINHO DO BANCO E CHAMA A TELA DE MENU PRINCIPAL   
    private void btConfirmaLoginActionPerformed(java.awt.event.ActionEvent evt) { 
         try{
              String h;   
              resultado=comando.executeQuery("select nome from usuario where senha='"+senha+"'");   
              if(resultado.next())  {   
                h=resultado.getObject(1).toString();   
                if(h.equalsIgnoreCase(nome))   
                JOptionPane.showMessageDialog(null, "Usuario encontrado");   
                    /se exise vc cria um objeto do seu menu principal     
                    new Principal(this.url, lblLoginLogin.getText()).show();    //PARAMETROS QUE A TELA PRINCIPAL IRA RECEBER   
                    dispose();    
               }  else  {   
                    JOptionPane.showMessageDialog(null, "Este usuario não existe");   
               }   
         }  catch(SQLException e)  {   
              e.printStackTrace();   
         }
    }
by.fogaca

VALEU MEUS BROTHERS DEU CERTO!!!, MAIS UMA VEZ OBRIGADO !

Criado 24 de fevereiro de 2011
Ultima resposta 24 de fev. de 2011
Respostas 4
Participantes 4