Java - Class does not display requested information

1

Good morning,

I need to fix a problem when I request in the "dao.Acess" the get of the Class model.User returns empty = null.

When it is called: doLogin (model.Access access) I can see the information through JOptionPane now when I do the same in: updateUsuario (model.Access access) nothing is displayed!

Class: model.Access

public class Acessar {

// Variables     private String name;     private String password;     private String group;     private Access Date;

// Getters & Setters
public String getNome() {
    return nome;
}
public void setNome(String nome) {
    this.nome = nome;
}
public String getSenha() {
    return senha;
}
public void setSenha(String senha) {
    this.senha = senha;
}   
public String getGrupo() {
    return grupo;       
}
public void setGrupo(String grupo) {
    this.grupo = grupo;
}
public Date getAcesso() {
    return acesso;
}

public void setAcesso(Date date) {
    this.acesso = date;
}

// Builders

// Usuário e Senha
public Acessar(String nome, String senha) {
    this.nome = nome;
    this.senha = senha;
}

// Acesso
public Acessar(Date acesso) {
    this.acesso = acesso;
}

}

Class: dao.Access

public class Acessar {

public static Connection con = dao.ConectarDB.getConexao();

public static String doLogin(model.Acessar acessar) {

    // Variáveis
    PreparedStatement ps = null;
    String sql = null; 
    ResultSet rs = null;
    ResultSet autenticacao = null;
    ResultSet grupo = null;
    sql = "select * from usuario where nome=? and senha=?";

    // Validar Usuário
    try {

        ps = ConectarDB.getConexao().prepareStatement(sql);
        ps.setString(1, acessar.getNome());
        ps.setString(2, acessar.getSenha());
        rs = ps.executeQuery();
        autenticacao = rs; 

        // Validar Grupo
        try {

            ps = null;
            sql = null;
            rs = null;
            sql = "select * from usuario where grupo=?";

            ps = con.prepareStatement(sql); 
            ps.setString(1, "Suporte");
            rs = ps.executeQuery();
            grupo = rs;

        } catch (SQLException ex) {
           ex.printStackTrace();
           return null;
        }

        // Autenticação do Usuário
        if(autenticacao.next()) {

            // Grupo do Usuário
            if(grupo.next()) {

            } else {
                return null;
            }

            return "Suporte";

        } else {
            return "erro";
        }            

    } catch (SQLException ex) {
        ex.printStackTrace();
        return "erro";
    }

}

// Atualizar Acesso do Usuário
public void atualizarUsuario(model.Acessar acessar) {

    // Variáveis
    PreparedStatement ps = null;
    String sql = "update usuario set acesso=? where nome=?";

    // Inserção
    try {
        ps = con.prepareStatement(sql);
        ps.setDate(1, new Date(acessar.getAcesso().getTime()));
        ps.setString(2, acessar.getNome());
        JOptionPane.showMessageDialog(null, "Nome: " + acessar.getNome()); // Mostra = null, por que?
        ps.executeUpdate();

    } catch (SQLException ex) {
       ex.printStackTrace();
    }
}

}

view.Access (jFrame)

// Botão Ok
    btnOk = new JButton("Ok");
    btnOk.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {                

        // Capturar Campos
            String nome = tfNome.getText();
            String senha = new String (pfSenha.getPassword());

        // Validar Usuário
            model.Acessar acessar = new model.Acessar(nome, senha);
            String autenticar = dao.Acessar.doLogin(acessar);

        // Validar Conexão com a Internet
            try {
                Socket socket = null;
                socket = new Socket("www.google.com.br", 80);
                socket.close();

            } catch (Exception e1) {
                JOptionPane.showMessageDialog(null, "Computador sem acesso a Internet!", "Informação", JOptionPane.WARNING_MESSAGE);
            }

        // Validar Conexão com Banco de Dados PostGreSQL
            try {
                ConectarDB db = new ConectarDB();
                db.main(null);
            } catch (Exception e1) {
                e1.printStackTrace();
            }


        // Autenticar Usuário
            if(autenticar != "erro") {

                // Capturar Data e Hora e Atualizar
                java.util.Date date = new java.util.Date();
                model.Acessar acessarM = new model.Acessar(date);

                // Atualizar Tabela do Usuário com Ultimo Acesso
                dao.Acessar uAtualizar = new dao.Acessar();
                uAtualizar.atualizarUsuario(acessarM);                  
                JOptionPane.showMessageDialog(null, acessarM.getAcesso(), "Informação", JOptionPane.INFORMATION_MESSAGE);               

                // Abrir a Janela do Sistema
                if(autenticar == "Suporte") {
                    JOptionPane.showMessageDialog(null, "Você pertence ao Grupo de (Suporte)", "Informação", JOptionPane.INFORMATION_MESSAGE);
                    new Sistema().main(null);
                    dispose();
                }                   

            } else if (autenticar == "erro"){
                JOptionPane.showMessageDialog(null, "Nome ou senha inválidos, favor verificar.", "Informação", JOptionPane.ERROR_MESSAGE);
            }

        }
    });
    
asked by anonymous 02.12.2015 / 12:03

1 answer

2
model.Acessar acessarM = new model.Acessar(date);

You are instantiating the object again before updating, without passing the name and password, other than the first call.

model.Acessar acessar = new model.Acessar(nome, senha);

Do the following:

Create the public access constructor () {} empty in the Access class.

Instead of you doing:

model.Acessar acessar = new model.Acessar(nome, senha);

Make:

 model.Acessar acessar = new model.Acessar();

 acessar.setNome(nome);

 acessar.setSenha(senha);

Remove the snippet:

model.Acessar acessarM = new model.Acessar(date);

And replace with:

acessar.setAcesso(date);
    
02.12.2015 / 12:21