Ir ao conteúdo
  • Cadastre-se

Login Utilizando o java com consulta no banco de dados


Posts recomendados

Ola pessoa boa tarde.Estou desenvolvendo um sistema para consultório medico , porém estou com uma dificuldade para fazer uma consulta no banco verificando usuário e senha .

a senha não precisa ser criptografada , eu quero criar um consulta que verifica se o usuario digitado esta correto e a senha também .Se sim abrir uma nova janela.Vou postar o codigo onde estou errando 

 

Meu Jframe Login é 

 

post-729888-0-67511500-1407947824_thumb.

 

 

e meu DAOLogin é 

 

post-729888-0-37059600-1407947861_thumb.

Link para o comentário
Compartilhar em outros sites

1. Não poste código como imagem.

 

2. A consulta do método consultaidsenha está errada (duplicada).

Solução: utilize uma interface com o banco e construa as consultas lá, e então traga para o código.

 

3. Suas consultas sql são passíveis de SQL Injection

Solução: utilize prepared statements

 

4. Seu código está sujo, chamando métodos desnecessários

Solução: limpe o código

Link para o comentário
Compartilhar em outros sites

Ola pessoa boa tarde.Estou desenvolvendo um sistema para consultório medico , porém estou com uma dificuldade para fazeruma consulta no banco verificando usuário e senha .

a senha não precisa ser criptografada , eu quero criar um consulta que verifica se o usuario digitado esta correto e a senha também .Se sim abrir uma nova janela.Vou postar o codigo onde estou errando

Esse é meu Jframe De login .

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                              // TODO add your handling code here:       String Nomedigitado = jTxtLogin.getText().toString();       String senha = jTxtSenha.getText().toString();              ResultSet ResultadoPesquisaNome = daoL.selecionaIdSenha(Nomedigitado);       ResultSet ResultadoPesquisaSenha = daoL.selecionanome(senha);       try{           //senha atual do banco           ResultadoPesquisaNome.next();                      //se o usuario e senha estiverem corretos                     // if(  ((((Nomedigitado.equals(ResultadoPesquisa.getString("nome"))) && (ResultadoPesquisa.getString("senha"))){         if(((Nomedigitado.equals(ResultadoPesquisaNome.getString("senha"))) && ((ResultadoPesquisaSenha.getString("senha")))))           {                jFTelaInicial Inicial = new jFTelaInicial();                 Inicial.setVisible(true);                 ut.escrevaJ("Seja bem Vindo");                 dispose();           }else{               ut.escrevaJ("Usuario ou senha Incorreto");           }//Fim do Senão        }catch (SQLException ex){           Logger.getLogger(jFLogin.class.getName()).log(Level.SEVERE, null,ex);       }               } Esse é meu DAO login Preciso validar os campos do usuario e senha no banco de dados public class DAOLogin {        //variáveis globais        Connection Conexao = null;    ResultSet Rs = null;    Statement Stm = null;    Utilitarios ut = new Utilitarios();        public DAOLogin(){        try {            Conexao = criaConexao.getConexao();        Stm = Conexao.createStatement();    }catch (SQLException e){        ut.escrevaJ("Erro ao conectar" );            }}   public ResultSet selecionaIdSenha(String idUsuario){              try{          String Pesquisa = ("SELECT * FROM usuario WHERE senha =  " + idUsuario);          Rs = Stm.executeQuery(Pesquisa);                           }catch(SQLException e){           ut.escrevaJ("Erro na Busca");                    }       return Rs;   }           public ResultSet selecionanome(String nome){              try{          String Pesquisa = ("SELECT * FROM usuario WHERE nome =  " + nome );          Rs = Stm.executeQuery(Pesquisa);                           }catch(SQLException e){           ut.escrevaJ("Erro na Busca");                    }       return Rs;   }            }

Desculpe

Cweiler sou iniciante em programação ainda rsrsrsr

Esse é meu Jframe De login .private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                              // TODO add your handling code here:       String Nomedigitado = jTxtLogin.getText().toString();       String senha = jTxtSenha.getText().toString();              ResultSet ResultadoPesquisaNome = daoL.selecionaIdSenha(Nomedigitado);       ResultSet ResultadoPesquisaSenha = daoL.selecionanome(senha);       try{           //senha atual do banco           ResultadoPesquisaNome.next();                      //se o usuario e senha estiverem corretos                     // if(  ((((Nomedigitado.equals(ResultadoPesquisa.getString("nome"))) && (ResultadoPesquisa.getString("senha"))){         if(((Nomedigitado.equals(ResultadoPesquisaNome.getString("senha"))) && ((ResultadoPesquisaSenha.getString("senha")))))           {                jFTelaInicial Inicial = new jFTelaInicial();                 Inicial.setVisible(true);                 ut.escrevaJ("Seja bem Vindo");                 dispose();           }else{               ut.escrevaJ("Usuario ou senha Incorreto");           }//Fim do Senão        }catch (SQLException ex){           Logger.getLogger(jFLogin.class.getName()).log(Level.SEVERE, null,ex);       }               } Esse é meu DAO login Preciso validar os campos do usuario e senha no banco de dados public class DAOLogin {        //variáveis globais        Connection Conexao = null;    ResultSet Rs = null;    Statement Stm = null;    Utilitarios ut = new Utilitarios();        public DAOLogin(){        try {            Conexao = criaConexao.getConexao();        Stm = Conexao.createStatement();    }catch (SQLException e){        ut.escrevaJ("Erro ao conectar" );            }}   public ResultSet selecionaIdSenha(String idUsuario){              try{          String Pesquisa = ("SELECT * FROM usuario WHERE senha =  " + idUsuario);          Rs = Stm.executeQuery(Pesquisa);                           }catch(SQLException e){           ut.escrevaJ("Erro na Busca");                    }       return Rs;   }           public ResultSet selecionanome(String nome){              try{          String Pesquisa = ("SELECT * FROM usuario WHERE nome =  " + nome );          Rs = Stm.executeQuery(Pesquisa);                           }catch(SQLException e){           ut.escrevaJ("Erro na Busca");                    }       return Rs;   }            }

Link para o comentário
Compartilhar em outros sites

  • Moderador

1. Não poste código como imagem.

 

 

 

@Cweiler, Não é proibido e nem infringe regras ao postar o código em imagem. Portanto permitido.

Sei que ajudas muito aqui, mas seu post não foi de alguma ajuda significativa. Por gentileza ajude-o postando coisas pertinentes ao problema, e não a postagem. Deixe que a moderação faça o serviço de orientação, Por isso limite-se a pena em ajudar no problema em si.

 

Att, Moderador Dif 

Link para o comentário
Compartilhar em outros sites

Ronimar

ResultSet ResultadoPesquisaNome = daoL.selecionaIdSenha(Nomedigitado);ResultSet ResultadoPesquisaSenha = daoL.selecionanome(senha);

Você já possui o nome (login) do usuário, não precisa de uma pequisa para isso. Recupere apenas a senha baseada no login do usuário:

String Pesquisa = ("SELECT * FROM usuario WHERE nome =  " + nome );

Friso novamente a necessidade de estudar o que é e como evitar sql injection.

if(((Nomedigitado.equals(ResultadoPesquisaNome.getString("senha"))) && ((ResultadoPesquisaSenha.getString("senha")))))

Não precisa de toda esta comparação, compare apenas a senha fornecida pelo usuário com a senha recuperada da consulta ao banco.

Link para o comentário
Compartilhar em outros sites

Consegui fazer o login meu DAO  eu Refinei meu codigo e ficou assim
 
  

public ResultSet verificarUsuario(String s, String n){              try{                              String Pesquisa = ("SELECT * FROM usuario WHERE senha like '%" + s + "%' AND nome like '%" + n+"%'");                    Rs = Stm.executeQuery(Pesquisa);          JOptionPane.showMessageDialog(null, Pesquisa);                          }catch(SQLException e){           ut.escrevaJ("Erro SQL : " + e);                    }       return Rs;   } 

 
Já meu jFLogin
 
ficou assim
 

String LoginDigitado = jTxtLogin.getText().toString();       String SenhaDigitada = jTxtSenha.getText().toString();              ResultSet rsVerifica = daoL.verificarUsuario(SenhaDigitada, LoginDigitado);              try{         //senha atual do banco           rsVerifica.next();                      //se o usuario e senha estiverem corretos                            if (rsVerifica.first())           {                jFTelaInicial Inicial = new jFTelaInicial();                 Inicial.setVisible(true);                 ut.escrevaJ("Seja bem Vindo");                 dispose();           }else{               ut.escrevaJ("Usuario ou senha Incorreto");           }//Fim do Senão       }catch (SQLException ex){           Logger.getLogger(jFLogin.class.getName()).log(Level.SEVERE, null,ex);       } 

So que agora preciso Implementar também uma consulta paraverificar também o nivel de Hierarquia
 Ou seja tenho o login funcionando com o usuario e senha , agora preciso verificar também o nivel de hierarquia

imagem.bmp

Link para o comentário
Compartilhar em outros sites

Ok Ronimar, solução válida, com mais conhecimentos você poderá melhorá-la.

"SELECT * FROM usuario WHERE senha like '%" + s + "%' AND nome like '%" + n+"%'"

Não utilize LIKE, faça comparação exata com o sinal de igual. Se os valores passados como nome e senha forem abrangentes você terá retorno errado, e caso passem duas strings vazias irá retornar todos os registros da tabela. E ainda continua o problema de sql injection, eu insisto nisso pois é um erro comum de ser levado para aplicativos reais, quanto mais cedo você aprender a forma correta melhor, por isso, utilize prepared statement, não é difícil.

 

Quanto a sua hierarquia, você se refere a perfil de usuário, e isso depende da forma que você está desenhando o banco de dados, se o perfil estiver definido na tabela usuario, a consulta acima irá trazer este perfil, basta recuperar do resultset com um getString se adequado.

Link para o comentário
Compartilhar em outros sites

Cweiler estou com o seguinte problema 

 

na minha aplicação tenho um campo data que o usuário entra com a data no formato brasileiro , e tenho um arquivo cria tabela que setas as informações especifica em uma tabela 

,preciso converter para o formato americano , pois este arquivo so seta data no formato americano segue a imagem da situação 

post-729888-0-84967800-1409243899_thumb.

Link para o comentário
Compartilhar em outros sites

Estou supondo que sua coluna seja de um tipo data.

 

1º passo é converter a informação textual do usuário em java.util.Date através de SimpleDateFormat.parse

 

2º crie o sql com PreparedStatement:

INSERT INTO agenda (paciente, horario, data, medico) VALUES (?, ?, ?, ?);

 

3º injete a instância Date recuperada no 1º passo dentro do statement criado no 2º passo com PreparedStatement.setDate, e os demais valores conforme o mapeamento

 

4º execute o statement

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...