TableView popula apenas um dado do banco

2 respostas
javafxjava
G

Estou com um problema de desenvolvimento, criei um Menu Item para listar todos os usuários cadastrado no meu sistema, porém, ele me retorna apenas 1 (um) dos meus dados do banco, que no caso, era para ser mais de 20 usuários.

Minha classe para pegar os dados do banco:

public List<Usuario> getUsuario() {
    Conexao con = new Conexao();

    String sql = "SELECT * FROM usuario ORDER BY nome";

    List<Usuario> usuarios = new ArrayList<Usuario>();

    List<Setor> setores = getSetor();
    Map<Integer, Setor> mapSetor = new HashMap<>();

    for(Setor setor : setores) {
        mapSetor.put(setor.getId(), setor);
    }

    List<TipoUsuario> tipoUsuarios = getTipoUsuario();
    Map<Integer, TipoUsuario> mapTipoUsuario = new HashMap<>();

    for (TipoUsuario tp : tipoUsuarios) {
        mapTipoUsuario.put(tp.getId(), tp);
    }

    ResultSet resultSet = con.ExecutaSelect(sql);

    if (resultSet != null ) {
        try {
            if (resultSet.next()) {
                int id = resultSet.getInt("id");
                String matric = resultSet.getString("matricula");
                String nome = resultSet.getString("nome");
                String senha = resultSet.getString("senha");
                int setor = resultSet.getInt("setor_id");
                int tp = resultSet.getInt("tipo_usuario_id");
                Usuario usuario = new Usuario();
                usuario.setId(id);
                usuario.setNome(nome);
                usuario.setMatricula(matric);
                usuario.setSetor(mapSetor.get(setor));
                usuario.setSenha(senha);
                usuario.setTipoUsuario(mapTipoUsuario.get(tp));
                usuarios.add(usuario);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    con.fecharConexao();
    return usuarios;
}

Minha classe da table view:

public ObservableList<Usuario> obUsuario;

@FXML
public void initialize() {

    nomeTableColumn.setCellValueFactory(param -> {
        return new SimpleObjectProperty(param.getValue().getNome());
    });

    matriculaTableColumn.setCellValueFactory(param -> {
        return new SimpleObjectProperty(param.getValue().getMatricula());
    });

    getData();
    populate();
}

public void populate() {
    List<Usuario> listaUsuarios = banco.getUsuario();
    usuarioTableView.getItems().clear();
    usuarioTableView.getItems().addAll(listaUsuarios);
}

Muito obrigado pela atenção!

2 Respostas

R

Use um while aqui para ir repetindo até ler todas as linhas do resultado.

while(resultSet.next()) {
G

Meu amigo, eu NUNCA iria achar esse erro kkkkk, muito obrigado meu parceiro!!

Criado 15 de junho de 2021
Ultima resposta 15 de jun. de 2021
Respostas 2
Participantes 2