Usuário e senha urgente

47 respostas
Morena

Olá galera bom dia!!!

Comecei agora a estudar Java e estou precisando de ajuda.É o seguinte eu criei um banco onde coloquei alguns usários e fiz no netbeans a tela que corresponde a esses usuários, agora preciso que seja validado usuário e senha e não estou conseguindo.Alguém pode me ajudar.Estou na terceira aula de Java :oops:

Obrigada!!!

47 Respostas

kicolobo

Você já sabe JDBC?

Morena

Não!

Anime

Oi Morena,

Se souber fazer a conexão,da uma olhadinha aqui:

http://www.guj.com.br/posts/list/215775.java#1100524

http://www.guj.com.br/posts/list/123387.java#667742

http://www.guj.com.br/posts/list/146015.java#787042

http://www.guj.com.br/posts/list/121584.java#657848

Boa sorte!

Anime

afff…foi mais rapida… :stuck_out_tongue:

Que banco esta usando…

kicolobo

Já sabe por onde começar. Aprenda JDBC.

Use este tutorial: é excelente. http://download.oracle.com/javase/tutorial/jdbc/basics/

L

é melhor vc estudar um pouco mais !!!

vai ter que quebar um pouco a cabeça!

e tbm ele é Web ou vai ser Desktop?

Morena

rsrs a conexão eu sim.Achei que meu professor pegou meio pesado por sermos iniciantes.Más vou tentar aqui.

Obrigada!!!

Anime

kicolobo:
Já sabe por onde começar. Aprenda JDBC.

Use este tutorial: é excelente. http://download.oracle.com/javase/tutorial/jdbc/basics/

O tutorial é exelente,mas se ela não sabe nada,vai ficar um pouco perdida… :wink:

Morena

O banco que eu estou usando é o MySql

Anime

Morena:
rsrs a conexão eu sim.Achei que meu professor pegou meio pesado por sermos iniciantes.Más vou tentar aqui.

Obrigada!!!

Não entendi… :roll:

Mas valeu…rs…

Anime

Certo,vc disse que sabe fazer a conexão…então já fez,não é :?:

Morena

Fiz sim.

Anime

Legal,então da uma olhada nos links que indiquei,vai ajudar… :wink:

Morena

Ok vou tentar resolver aqui.E tenho que conseguir até 12:00 :lol:

kicolobo

É melhor então pegar um livro e seguir APENAS este livro sem olhar pro lado. Sugiro o dos Deitel.

E digo pra não olhar pro lado por esta razão: http://www.itexto.net/devkico/?p=728

Anime

kicolobo:
É melhor então pegar um livro e seguir APENAS este livro sem olhar pro lado. Sugiro o dos Deitel.

E digo pra não olhar pro lado por esta razão: http://www.itexto.net/devkico/?p=728

Oi Kicolobo,

Realmente seguir o livros é uma boa opção…Mas desculpe,discordo dessa teoria,eu sou um exemplo de quem aprende pesquisando em vários sites,sei la acho que cada caso é um caso,não devemos generalizar…Por favor não leve a mal,é só uma opinião pessoal… :wink:

kicolobo

Anime:
kicolobo:
É melhor então pegar um livro e seguir APENAS este livro sem olhar pro lado. Sugiro o dos Deitel.

E digo pra não olhar pro lado por esta razão: http://www.itexto.net/devkico/?p=728

Oi Kicolobo,

Realmente seguir o livros é uma boa opção…Mas desculpe,discordo dessa teoria,eu sou um exemplo de quem aprende pesquisando em vários sites,sei la acho que cada caso é um caso,não devemos generalizar…Por favor não leve a mal,é só uma opinião pessoal… :wink:

Opa, nenhum problema. Aliás, porque no GUJ sempre que alguém tem uma opinião diferente já chega pedindo desculpas hein? Aqui é um fórum de discussão, não?

O problema que eu vejo em aprender com várias fontes ao mesmo tempo é o seguinte: difícilmente o sujeito se aprofunda, pois acaba não possuindo um roteiro de aprendizado. O livro, por pior que seja, sempre tem um roteiro de aprendizado básico que, se seguido pelo iniciante, faz com que, ao final, no mínimo tenha um conhecimento básico sobre aquilo que está tentando aprender.

O problema de se aprender só com fórums, artigos na internet, etc no estágio inicial é que você simplesmente não tem esta trilha por um motivo basico: você ainda está conhecendo a coisa, não a conhece ainda, saca? E o que observo também é o seguinte: neste pula pula louco da Internet, o iniciante vai consequentemente perder varios detalhes que vão gerar um aprendizado muito deficitário.

No livro, óbviamente, não estão todos os detalhes sobre tudo e todos, mas as lacunas, os pontos ausentes, ficam muito mais em evidência do que neste mundarel de links e sites que nem sempre são confiáveis.

No final das contas, ficar pulando de link em link é tentativa e erro. É como tentar aprender a nadar sem professor: você se afogará muito mais vezes que o necessário :slight_smile:

rockstorm

Da uma olhada nos links passados que vc consegue…

Anime

Bom eu tive que aprender me virar,por que tinha um professor que ia no curso a passeio…Quem não fez como eu,acabou que não aprendeu nada,alguns até abandonou o curso,por pensar que só podiam aprender se o professor ensinasse…Quanto a pedir desculpas,faço sempre que acho necessário,tudo bem que é um forum,com opiniões diferentes,mas acho que educação cabe em qualquer lugar… :shock:

makecio

um exemplo para cria sua conexao

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            connection = DriverManager.getConnection("jdbc:odbc:nome_do_odbc");
            statement = connection.createStatement();

em nome_do_odbc vc ira criar em fonte de dados do windows la em ferramentas administrativas, escolhendo o driver certo para seu tipo de banco

Morena

Obrigada querido, más o problema não é a conexão.Ela já está feita.O probelma e como fazer o código que valide o usuário e a senha :cry:.

Anime

Não conseguiu…

Da uma olhadinha aq:

http://www.youtube.com/results?search_query=login+java+se

Não é a melhor forma… :roll:

jLady

Vou tentar passo a passo… creio q entendi o q vc precisa…

Esse é o metodo do sql pra procurar no banco:

public Usuario getUsuarioNome(Usuario user){
		Usuario u = null;
		try {
			String sql = "select * from usuario where nome=? and senha=?";
			PreparedStatement stmt = con.prepareStatement(sql);
			stmt.setString(1, user.getNome());
			stmt.setString(2, user.getSenha());
			ResultSet rs = stmt.executeQuery();
			while(rs.next()){
				u = new Usuario();
				u.setNome(rs.getString("nome"));
				u.setSenha(rs.getString("senha"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return u;
	}

Esse é o codigo pra validar o usuario:

String nome = txtUser.getText();
		String senha = txtSenha.getText();

		Usuario usuario = new Usuario(nome, senha);
		UsuarioDao dao = new UsuarioDao();
		Usuario user = dao.getUsuarioNome(usuario);		

		if(senha.equals(user.getSenha())){
			//alguma coisa se deu certo

		}else{
			//alguma coisa se deu errado
		}

Olha… isso é bem basiquinho… e não é o mais bonito, mas funciona…

se vc nao entender… posta aí q eu coloco de uma maneira mais explicada…

:wink:

Morena

jLady ali onde você escreveu getTextsenha ou algo parecido…o correto não seria usar getPassword ? Tô cheia de dúvida.

jLady

na sua aplicação onde o usuario digita a senha é um o q?
é um JTextField, não é?
se for mesmo que ele tenha a mascara pra password, o getText() ainda vai funcionar…

a parte do banco de dados vc entendeu?
qualquer coisa me avisa que eu explico melhor…

Morena

A parte do banco está ok.Só que onde meu usuário vai digitar a senha Não é um jTextField e sim um jPasswordFiel .Com isso ele não está deixando eu usar o geText.

L

faça dinovu e faça com o jTextField , pelo jeito vc pegou ele no netbeans na PALETA esse item jPasswordFiel!!!

certo!!

Morena

rsrsrs pelo jeito conhece bem o netbeans foi lá mesmo que eu peguei. Más como farei para a senha sair tipo “mascarada” tem como alterar nas propriedades né ?

jLady

lokit"s tem razao… vc pode fazer dessa maneira

ou pode realmente utilizar o getPassword()
mas ele retorna um array de char… dai vc teria q converter isso pra uma String…

mais facil trocar la por txtfield rapidinho…

jLady

qualquer coisa, pra converter o getPassword pra string
eu testei aqui e funcionou

JPasswordField pass = new JPasswordField("bla");

		char[] password = pass.getPassword();
		String senha = "";
		for(int i = 0; i<password.length; i++){
			senha = senha+password[i];
		}
Morena

O que há de errado com a linha abaixo. O erro esta no executeQuery e na palavra request.

ResultSet rs = st.executeQuery(“select * from usuario where nome = '”+request.getParameter(“jTextField1”)+"’ and senha=’"+request.getParameter(“jPasswordField1”)+"’");

Ajudem por favor.
Obrigada.

jLady

olá Morena,

só uma duvida antes de responder sua pergunta…
é web ou desktop?

L

Passo da hora hein shaushau :lol: :lol:

eai conseguiu resolver?

Morena

Desktop!!! aaaaffff tô enrolada com isso.Agora o erro mudou de lugar.

Está na linha do catch reclamando do SEVERE NULL. aaffff

jLady

entao porque vc está usando request?

vc tem os fields na sua tela… certo?

supondo q todos sejam textfield

seu select é assim

String sql ="select * from usuario where senha="+txtSenha.getText()+" and nome="+txtNome.getText();

entendeu?

**corrigi aspas

renamed

Oi.

Pq vc não posta seu código junto com o erro que está dando? Nos ajuda a te ajudar! :smiley:

L

post uma boa parte do seu codigo …pq se for ficar com explicações vai demorar mais ainda…

e tbm posta as partes mais importantes

Morena

A minha linha é assim.

ResultSet rs =executeQuery(“select * from usuario where nome =’”+request.getParameter(“jTextField1”)+"’ and senha =’"+request.getParameter(“jPasswordField1”)+"’");
Dai ele me pediu para criar a classe request.Eu criei o erro sumiu dessa linha.Agora não tem erro aparente .O erro só aparece quando eu coloco o usuário a senha a função e cliclo em logar.

O erro vem em letras vermelhas.
SEREVE:NULL.

L

ohoho da uma olhada nesse exemplo........!!!! as coisas vão longe assim! 8)

import java.awt.Component;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.UIManager;


/**
 *
 * @author  master
 */
public class Login extends javax.swing.JFrame {
    
    /** Creates new form Login */
    public Login() {
        initComponents();
        botaoX();
    }
    Component comp;
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        strUsuario = new javax.swing.JFormattedTextField();
        strSenha = new javax.swing.JPasswordField();
        jLabel4 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Login");
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 36));
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("LOGIN");
        jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);

        jLabel2.setFont(new java.awt.Font("MS Sans Serif", 0, 24));
        jLabel2.setText("USUARIO:");

        jLabel3.setFont(new java.awt.Font("MS Sans Serif", 0, 24));
        jLabel3.setText("SENHA:");

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("CANCELAR");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel4.setFont(new java.awt.Font("MS Sans Serif", 0, 12));
        jLabel4.setText("Entre com o usu\u00e1rio e senha, caso voc\u00ea n\u00e3o tenha fa\u00e7a a solicita\u00e7\u00e3o para seu supervisor.");

        jLabel6.setFont(new java.awt.Font("MS Sans Serif", 1, 12));
        jLabel6.setText("Copy By Scorsatto");

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(447, 447, 447)
                .add(jLabel1)
                .addContainerGap(1814, Short.MAX_VALUE))
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .add(287, 287, 287)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(jLabel2)
                        .add(43, 43, 43)
                        .add(strUsuario, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 228, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(layout.createSequentialGroup()
                        .add(jLabel3)
                        .add(69, 69, 69)
                        .add(strSenha, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 109, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(1702, 1702, 1702))
            .add(layout.createSequentialGroup()
                .add(473, 473, 473)
                .add(jLabel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 199, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(1817, Short.MAX_VALUE))
            .add(layout.createSequentialGroup()
                .add(245, 245, 245)
                .add(jLabel4)
                .addContainerGap(1752, Short.MAX_VALUE))
        );

        layout.linkSize(new java.awt.Component[] {jLabel1, strSenha, strUsuario}, org.jdesktop.layout.GroupLayout.HORIZONTAL);

        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap(17, Short.MAX_VALUE)
                .add(jLabel1)
                .add(89, 89, 89)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(strUsuario, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 35, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 34, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel2))
                .add(48, 48, 48)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(strSenha, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 37, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel3))
                .add(58, 58, 58)
                .add(jLabel4)
                .add(75, 75, 75)
                .add(jLabel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(242, 242, 242))
        );
        pack();
    }// </editor-fold>                        
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        boolean validado=validaCampos();
        if (validado){
            boolean logado=ConsultaLogin(); //BOTAO OK
            if (!logado){
                JOptionPane.showMessageDialog(comp,"ERRO ! usuário ou senha inválida.",null,JOptionPane.ERROR_MESSAGE);
                limpaCampos();
            }else{
                setVisible(false);
                new Principal().setVisible(true);
            }
        }else msgerro();
    }                                        
    
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        System.exit(0); //BOTAO CANCELAR
    }                                        
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        try{
            UIManager.setLookAndFeel(
                    UIManager.getSystemLookAndFeelClassName() );
        }catch( Exception e ){
            e.printStackTrace();
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Login().setVisible(true);
            }
        });
    }
    private String getsenha(){
        String senha;
        senha= new String(strSenha.getPassword());
        
        return senha;
    }
    private void limpaCampos(){
        strSenha.setText("");
        strUsuario.setText("");
    }
    private boolean validaCampos(){
        boolean validado=true;
        String senha=getsenha();
        if((strUsuario.getText().equals("")) || (senha.equals(""))){
            validado=false;
        }
        return validado;
    }
    private void msgerro(){
        JOptionPane.showMessageDialog(comp,"ERRO ! Todos os campos são obrigatórios.",null,JOptionPane.ERROR_MESSAGE);
    }
    
    private boolean ConsultaLogin(){
        Connection c;
        String user="",password="";
        ResultSet rs = null;
        Component comp = null;
        boolean logado=false;
        try{
            //dado.getText().toUpperCase();
            //registro do driver
            Class.forName("org.gjt.mm.mysql.Driver");
            //obtendo coneccao
            c = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase");
            //criado um manipulador de instrucao
            Statement s = c.createStatement();
            String senha=getsenha();
            rs = s.executeQuery("SELECT * FROM login where usuario='"+strUsuario.getText()+"'AND senha='"+senha+"'");
            // ResultSetMetaData rsmd = rs.getMetaData();//executa as colunas id, nome ...
            while (rs.next()){
                logado=true;
            }
        } catch (Exception e) {
            System.err.println(e);
        }finally {
            try{
                //fechar coneccao com o banco de dados
                rs.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return logado;
    }
    public  void botaoX(){
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                //caixa de dialogo retorna um inteiro
                int resposta = JOptionPane.showConfirmDialog(null,"Deseja Realmente finalizar o Sistema?","Finalizar",JOptionPane.YES_NO_OPTION);
                
                //sim = 0, nao = 1
                if (resposta == 0) {
                    System.exit(0);
                }
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPasswordField strSenha;
    private javax.swing.JFormattedTextField strUsuario;
    // End of variables declaration                   
    
}

espero que ajude, e tbm post seus codigos entre tags!

jLady

e o que tem na sua classe request? porque vc esta usando request?

eu posso estar errada, mas nao se usa request em desktop… é pra servlets de web… por isso ele pediu pra vc criar a classe… ela nao existe e vc esta tentando usar…

entao NAO use request… nunca vai funcionar… e da null pq nao tem nada… realmente está nulo… faça como eu te disse…

e realmente seria bom se vc postasse algo mais do codigo, vc ta usando quais classes pra fazer isso?

vc criou uma classe Usuario com os getters e setters? tem uma classe só pra conectar no banco? em que classe está as suas queries?

fica complicado ajudar sem saber nada de como vc esta fazendo…

L

depois desse exemplo se não conseguir resolover…ta com a faca e o queijo na mão agora…só entender ele e manda a bala…

é JLADY pergunta pra post as coisas e não post !!! (hard)

Morena

Desculpem o incomôdo é que comecei a estudar Java na última segunda feira e estou cheia de dúvida, e o meu professor não colabora na cabeça dele to mundo já programou na vida.

Eu não fiz classe usuario o que eu fiz foi um formulario JFrame e nele eu coloquei assim :

treis labels(nome =jTextField1,
senha=jPaswordField1
função=jcomboBox1)

treis buttons(editar,sair,entrar)

Como eu estou cheia de dúvidas estou procurando ajuda em toda a net.Dai encontrei umas vídeo aulas e fiz igual.Lá na vídeo aula ele usava o request más o meu é diferente ele me pediu para criar a classe request más não usei ela para nada.

A conexão, e ver se o usuário está cadastrado para entrar no sistema estou fazendo dentro do botão entrar(com certeza está errado).

Como eu faço para por o meu "Código’ aqui?

E

Morena:
A minha linha é assim.

ResultSet rs =executeQuery(“select * from usuario where nome =’”+request.getParameter(“jTextField1”)+"’ and senha =’"+request.getParameter(“jPasswordField1”)+"’");
Dai ele me pediu para criar a classe request.Eu criei o erro sumiu dessa linha.Agora não tem erro aparente .O erro só aparece quando eu coloco o usuário a senha a função e cliclo em logar.

O erro vem em letras vermelhas.
SEREVE:NULL.

chegando de para-quedas, uma coisa que reparei aqui é que o seu executeQuery não é um método de nenhum objeto, ao meu ver o certo seria connection.executeQuery (a menos que você tenha declarado um método executeQuery na classe que está o método que você está escrevendo).

Tentou debuggar o código para saber exatamente em que linha está dando o erro? (e lembrou de colocar os tratamentos de excessão?)

Se isso não solucionar, tenta descrever os detalhes do que está dando de errado.

Morena

Caro amigo evefuji como você chegou de paraquedas vou deixa-lo a par da situação.

Eu comecei a estudar Java na útilma segunda estou mais perdida do cego em um tiroteiro kkkk.

Vou começar denovo.

De acordo com instruções preciso fazer uma classe com gets e sets de nome,senha, e funçao depois disso eu faço a tela no JFrame .Né ?

jLady

morena, veja suas mensagens privadas… :wink:

E

Morena:
Caro amigo evefuji como você chegou de paraquedas vou deixa-lo a par da situação.

Eu comecei a estudar Java na útilma segunda estou mais perdida do cego em um tiroteiro kkkk.

Vou começar denovo.

De acordo com instruções preciso fazer uma classe com gets e sets de nome,senha, e funçao depois disso eu faço a tela no JFrame .Né ?

hehe, eu tinha dado uma lida por cima nos posts.

Bom, vamos lá, você está usando Swing e Netbeans com desenvolvimento visual né? Não lembro muito de swing, mas vou tentar dar uma visão geral(provavelmente você já fez tudo isso, mas vai me ajudar a entender exatamente a sua dúvida).

Você já deve ter criado a tela de login certo? (Um JFrame com JTextField para username e um para senha, além de um JButton para login).

Você vai ter que, no método acionado pelo evento onclick (num lembro se era esse evento) do JButton, instanciar um objeto user e um userDao, no user você vai setar o username e senha que você recebeu nos JTextField, e depois, no userDao, vai ter um método como “validate”, que recebe um objeto user e vai buscar no banco de dados (com as consultas que te passaram antes), esse método deve setar uma propriedade “logado” (ou qualquer coisa assim, principalmente se tiver vários níveis de acesso) no seu objeto user.

Daí para frente, você pode fazer para, no final do método, se o usuário tiver logado com as permissões necessárias, abrir algum outro JFrame com todas as opções do sistema.

Agora, nesse resumo que eu fiz, qual parte você está tendo dificuldades?

L
lokit"s:
ohoho da uma olhada nesse exemplo........!!!! as coisas vão longe assim! 8)
import java.awt.Component;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.UIManager;


/**
 *
 * @author  master
 */
public class Login extends javax.swing.JFrame {
    
    /** Creates new form Login */
    public Login() {
        initComponents();
        botaoX();
    }
    Component comp;
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        strUsuario = new javax.swing.JFormattedTextField();
        strSenha = new javax.swing.JPasswordField();
        jLabel4 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Login");
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 36));
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("LOGIN");
        jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);

        jLabel2.setFont(new java.awt.Font("MS Sans Serif", 0, 24));
        jLabel2.setText("USUARIO:");

        jLabel3.setFont(new java.awt.Font("MS Sans Serif", 0, 24));
        jLabel3.setText("SENHA:");

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("CANCELAR");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel4.setFont(new java.awt.Font("MS Sans Serif", 0, 12));
        jLabel4.setText("Entre com o usu\u00e1rio e senha, caso voc\u00ea n\u00e3o tenha fa\u00e7a a solicita\u00e7\u00e3o para seu supervisor.");

        jLabel6.setFont(new java.awt.Font("MS Sans Serif", 1, 12));
        jLabel6.setText("Copy By Scorsatto");

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(447, 447, 447)
                .add(jLabel1)
                .addContainerGap(1814, Short.MAX_VALUE))
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .add(287, 287, 287)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(jLabel2)
                        .add(43, 43, 43)
                        .add(strUsuario, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 228, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(layout.createSequentialGroup()
                        .add(jLabel3)
                        .add(69, 69, 69)
                        .add(strSenha, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 109, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(1702, 1702, 1702))
            .add(layout.createSequentialGroup()
                .add(473, 473, 473)
                .add(jLabel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 199, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(1817, Short.MAX_VALUE))
            .add(layout.createSequentialGroup()
                .add(245, 245, 245)
                .add(jLabel4)
                .addContainerGap(1752, Short.MAX_VALUE))
        );

        layout.linkSize(new java.awt.Component[] {jLabel1, strSenha, strUsuario}, org.jdesktop.layout.GroupLayout.HORIZONTAL);

        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap(17, Short.MAX_VALUE)
                .add(jLabel1)
                .add(89, 89, 89)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(strUsuario, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 35, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 34, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel2))
                .add(48, 48, 48)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(strSenha, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 33, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 37, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel3))
                .add(58, 58, 58)
                .add(jLabel4)
                .add(75, 75, 75)
                .add(jLabel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(242, 242, 242))
        );
        pack();
    }// </editor-fold>                        
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        boolean validado=validaCampos();
        if (validado){
            boolean logado=ConsultaLogin(); //BOTAO OK
            if (!logado){
                JOptionPane.showMessageDialog(comp,"ERRO ! usuário ou senha inválida.",null,JOptionPane.ERROR_MESSAGE);
                limpaCampos();
            }else{
                setVisible(false);
                new Principal().setVisible(true);
            }
        }else msgerro();
    }                                        
    
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        System.exit(0); //BOTAO CANCELAR
    }                                        
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        try{
            UIManager.setLookAndFeel(
                    UIManager.getSystemLookAndFeelClassName() );
        }catch( Exception e ){
            e.printStackTrace();
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Login().setVisible(true);
            }
        });
    }
    private String getsenha(){
        String senha;
        senha= new String(strSenha.getPassword());
        
        return senha;
    }
    private void limpaCampos(){
        strSenha.setText("");
        strUsuario.setText("");
    }
    private boolean validaCampos(){
        boolean validado=true;
        String senha=getsenha();
        if((strUsuario.getText().equals("")) || (senha.equals(""))){
            validado=false;
        }
        return validado;
    }
    private void msgerro(){
        JOptionPane.showMessageDialog(comp,"ERRO ! Todos os campos são obrigatórios.",null,JOptionPane.ERROR_MESSAGE);
    }
    
    private boolean ConsultaLogin(){
        Connection c;
        String user="",password="";
        ResultSet rs = null;
        Component comp = null;
        boolean logado=false;
        try{
            //dado.getText().toUpperCase();
            //registro do driver
            Class.forName("org.gjt.mm.mysql.Driver");
            //obtendo coneccao
            c = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase");
            //criado um manipulador de instrucao
            Statement s = c.createStatement();
            String senha=getsenha();
            rs = s.executeQuery("SELECT * FROM login where usuario='"+strUsuario.getText()+"'AND senha='"+senha+"'");
            // ResultSetMetaData rsmd = rs.getMetaData();//executa as colunas id, nome ...
            while (rs.next()){
                logado=true;
            }
        } catch (Exception e) {
            System.err.println(e);
        }finally {
            try{
                //fechar coneccao com o banco de dados
                rs.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return logado;
    }
    public  void botaoX(){
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                //caixa de dialogo retorna um inteiro
                int resposta = JOptionPane.showConfirmDialog(null,"Deseja Realmente finalizar o Sistema?","Finalizar",JOptionPane.YES_NO_OPTION);
                
                //sim = 0, nao = 1
                if (resposta == 0) {
                    System.exit(0);
                }
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPasswordField strSenha;
    private javax.swing.JFormattedTextField strUsuario;
    // End of variables declaration                   
    
}

espero que ajude, e tbm post seus codigos entre tags!

caracas com esse exemplo vc não tiro nada...ta na cara aiiiii, parada dura agora!!! hein

Criado 9 de novembro de 2010
Ultima resposta 10 de nov. de 2010
Respostas 47
Participantes 9