Os componentes do meu formulario nao recebem os gets da classe dto

Ola amigos. Sou iniciante em java, mas já tento a dias solucionar o problema. quero colocar os atributos usuário, fone, login, perfil e senha pegos do banco de dados e com eles preencherem os campos de mesmo do formulário usuário. Isso após entrar com um numero no campo id_usuario. Acontece que nenhum campo no formulário está sendo preenchido. alguém pode avaliar meu código e ajudar na sequencia de meu aprendizado? O programa nao gera nehum erro.
O código é esse:

public class UsuarioDto {
    private int iduser;
    private String usuario, fone, login, senha, perfil;

    
    public void setIduser(int iduser) {
        this.iduser = iduser;
     }
    
    public int getIduser() {
        return iduser;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
   }
    
    public String getUsuario() {
        return  usuario;
    }

   public void setFone(String fone) {
        this.fone = fone;
     }

    public String getFone() {
        return fone;
    }

     public void setLogin(String login) {
        this.login = login;
    }

    public String getLogin() {
        return login;
    }

   public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getSenha() {
        return senha;
    }

    public void setPerfil(String perfil) {
        this.perfil = perfil;
    }

    public String getPerfil() {
        return perfil;
    }

}
public void consultar (){
        
        try {
             
        int funcId= Integer.parseInt(txtUsuarId.getText());
      
        UsuarioDto objUserDTO = new UsuarioDto();
        objUserDTO.setIduser(funcId);
        
        
        UsuarioDAO objUserDAO = new UsuarioDAO();
       
        objUserDAO.consultarUsuario(objUserDTO);
        
        ResultSet retUsuarioDao = objUserDAO.consultarUsuario(objUserDTO);
        
        txtUsuarNome.setText(objUserDTO.getUsuario());
                
        txtUsuarFone.setText(objUserDTO.getFone());
       
        txtUsuarLogin.setText(objUserDTO.getLogin());

        txtUsuarSenha.setText(objUserDTO.getSenha());
       
        cboUsuarPerfil.setSelectedItem(objUserDTO.getPerfil());
        } catch (Exception erro) {
            JOptionPane.showMessageDialog(null,"Erro ao cosultar usuario"+ erro);
        }
     
   
    }
}
public class UsuarioDAO {

    Connection conexao;
    PreparedStatement pst;

    /*result set tras informações do banco dados*/
    ResultSet rs;
   
    public ResultSet consultarUsuario(UsuarioDto objUsuarDTO) {
           
        String sql = "select *from tbUsuarios where iduser=?";

         conexao = new ModConexaoDAO().conector();

        try {
            
            UsuarioDto objUsuarioDTO = new UsuarioDto();
            pst = conexao.prepareStatement(sql);
            pst.setInt(1, objUsuarDTO.getIduser());
            
             System.out.println("O conteudo em IdUser é: "+ pst);
           
            rs = pst.executeQuery();
            
            
            if (rs.next()) {
                
                objUsuarioDTO.setUsuario(rs.getString("usuario"));
                
                objUsuarioDTO.setFone(rs.getString("fone"));
                
                objUsuarioDTO.setLogin(rs.getString("login"));
                
                objUsuarioDTO.setSenha(rs.getString(5));
                
                objUsuarioDTO.setPerfil(rs.getString(6));
            } else {
                System.out.println("Não há mais dados......");
                JOptionPane.showMessageDialog(null, "Usuario nao cadastrado..... ");

            }
           
               return rs;

        } catch (Exception erro) {
            JOptionPane.showMessageDialog(null, "Erro consultar usuario: " + erro);
           return null;
        }
      
        
    } 

}

Olaaaa…Ninguem para dar uma ajuda?

Posta o código completo. Está faltando coisa aí.

O que mais poderia estar faltando? A outra parte é o modulo de conexao.

package br.com.infox.dao;
//import java.sql.*;

import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;

public class ModConexaoDAO{
    //metodo que fara a conexao com o banco
    
    public static Connection conector(){
        /*criando uma variavel conexao que ira receber a conexao*/
        Connection conexao = null;
        
        /*chamando o drive importado*/
        String driver = "com.mysql.jdbc.Driver";
        
        /*armazenando infromacoes referente ao banco*/
        String url ="jdbc:mysql://localhost:3306/dbinfox?useTimezone=true&serverTimezone=UTC";
        String user = "root";
        String password = "";
        
        try {
            /*executa o arquivo do driver*/
            Class.forName(driver);
            conexao = DriverManager.getConnection(url,user,password);
            return conexao;
            
        } catch (Exception erro) {
             JOptionPane.showMessageDialog(null, "Erro ao carregar banco: " + erro);
           return null;     
    }
}
}

Em vez de passar o UsuarioDto como parâmetro no método consultarUsuario. Faça o método retornar um UsuarioDto e receber o ID do funcionário como parâmetro. Assim:

public UsuarioDto consultarUsuario(int idFuncionario) {
}

Após fazer essa alteração, execute sua aplicação no modo debug e inspecione o valor retornado pelo método consultarUsuario da classe UsuarioDAO, e veja se os valores estão sendo retornados corretamente do banco de dados.

Estou tentando a sua dica, mas ainda fica a duvida sobre meu código, o porque de nao retornar o get, retorna como null. fiz um print no get public String getUsuario() {
System.out.println("O usuario em getUsuario é…: "+ usuario);
return usuario;
} está retornando null.

Não entendi essa parte. Como assim retornar o get? O que é esse get?


O teste que vc precisa fazer é, depois de alterar o método conforme falei, verificar se o usuário está sendo retornado com os valores corretos, assim:

int funcId = Integer.parseInt(txtUsuarId.getText());
UsuarioDAO objUserDAO = new UsuarioDAO();

UsuarioDto usuario = objUserDAO.consultarUsuario(funcId);
System.out.println(usuario.getUsuario()); // veja se o valor está sendo retornado igual o valor que está no banco

Olá. quando me referi, talvez de forma errônea a retorna o get, é pegar os dados get, e passar para os campos do formulario view. estou testando sua dia. Obrigado, retorno par dizer se deu certo.

Olá, sua dica UsuarioDto usuario = objUserDAO.consultarUsuario(funcId);
System.out.println(usuario.getUsuario()); nao retorna o usuario cadastrado no banco. O retorno conitua sendo null. se voce observar no meu código no trecho txtUsuarNome.setText(objUserDTO.getUsuario()); já pedia o mesmo retorno, que também retorna null. AInda tenho o mesmo problema.

já o set recebe exatamente o que digito no campo do formulário.
public void setIduser(int iduser) {
this.iduser = iduser;
System.out.println("O valor em setIduser é: " + iduser);
} ou seja set ok, get é null.
Acho que estou agarrado em coisa muito básica, e não consigo continuar com meus estudos sem entender o que está acontecendo.

Como ficou o método consultarUsuario depois da alteração q vc fez?

Olá…Fiz exatamente como voce sugeriu, nada a mais.
int funcId = Integer.parseInt(txtUsuarId.getText());
UsuarioDAO objUserDAO = new UsuarioDAO();

UsuarioDto usuario = objUserDAO.consultarUsuario(funcId);
System.out.println(usuario.getUsuario());

Quero ver a implementação do método consultarUsuario, para ver como vc alterou ele.

Está ficando muito confuso!!! o system out println retorna null. nao fiz nenhuma alteracao no metodo, somente a da sugestao.

O programa continua como foi postado, somente com a alteração que voce propos. Não há mais nenhuma alteração.

UsuarioDto usuario = objUserDAO.consultarUsuario(funcId);
System.out.println(usuario.getUsuario()); deveria imprimir o nome do usuario, se não imprimi no console é porque nao há nada dentro do getUsuario();

Vc teve que alterar o método consultarUsuario, pois antes ele recebia um UsuarioDto como parâmetro e, depois da alteração, ele está recebendo um int como parâmetro, ou seja, a implementação do método tem que ter sido alterada, senão não vai funcionar.

Beleza, vou rever aqui…

Mas se é para passar um int id_funcionário como parâmetro, o conceito de encapsulamento de classe perde o valor, pois nao estarei usando get() set() da classe encapsulada, e não é isso que eu quero, pois estou no momento testando exatamente o modelo de 3 camadas…

Passar um int como parâmetro não quebra conceito nenhum não uai. É que, se vc quer recuperar algo pelo ID, vc soh precisa passar o ID. A responsabilidade do método é, receber o ID e devolver o objeto referente à esse ID.

Na verdade, alterar um parâmetro recebido é uma prática ruim.

Sobre o encapsulamento de classe, a camada DAO tem que saber usar a classe que será usada como entidade para mapear uma tabela do banco de dados, pois é assim que essa camada irá usar os dados do banco na aplicação.

Repare que o Model faz o acesso ao banco de dados. A forma de representar a tabelas do banco na aplicação é através de classe geralmente chamadas de Entidade. Pense no DAO como parte da camada Model.