Ir ao conteúdo
  • Cadastre-se
Ronimar

Login Utilizando o java com consulta no banco de dados

Recommended Posts

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.

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho meu Queris Util Mais preciso agora verificar o usuario e senha no banco ,Como faço?

Compartilhar este post


Link para o post
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;   }            }

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×