[RESOLVIDO] Jtable repetindo o mesmo valor várias vezes

Eu estou fazendo uma tela para fazer todos os métodos CRUD. Já fiz o inserir e queria exibir os dados na minha JTable. Porém os valores estão sendo repetidos.

Esse é o método para capturar os valores do banco na classe “ClienteDao”

(vou colocar mais imagens abaixo)

Esse é o método para preencher a Jtable:
metodo%20ReadTable

Esse é a tela como fica:

Não poste imagens do código
Posta o código, seleciona ele e clica no botão de auto formatação.

No seu método ListarClientes, que deveria iniciar com letra minúscula, você só está criando um objeto do tipo Cliente, a cada iteração do laço está alterando as propriedades do mesmo objeto e inserindo o mesmo objeto na lista.
Está errado, tem que instanciar um novo objeto a cada iteração do laço.

Valeu, foi isso mesmo…

Obrigada

@Larissa_Smith, seja bem vinda ao fórum, e esperamos que você aprenda bastante coisa por aqui! (Eu mesmo aprendo muito rsrs).

Leia este tópico aqui que será de ajuda pra você que tá chegando agora aqui no fórum:

Postando código aqui, selecione-o e depois aperte “</>” que fica logo acima da caixa de texto, daí seu código ficará formatado e de fácil entendimento, em vez de postar prints do código. :wink: a comunidade agradece! :hugs:

Pode me ajudar com a solução do mesmo problema?

private void readTable() {
        try {
            UserDAO objUserDAO = new UserDAO();

            DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
            model.setNumRows(0);

            ArrayList<User> list = objUserDAO.read();

            for (User user : list) {
                model.addRow(new Object[]{
                    user.getId(),
                    user.getName(),
                    user.getPass(),
                    user.getEmail(),
                    user.getCpf()
                });
            }

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "List VIEW" + e);
        }
    }
public ArrayList<User> read() {
        String query = "SELECT * FROM users";

        try {
            stmt = connection.prepareStatement(query);
            result = stmt.executeQuery();

            while (result.next()) {
                User objUser = new User();
                objUser.setId(result.getInt("id"));
                objUser.setName(result.getString("name"));
                objUser.setPass(result.getString("pass"));
                objUser.setEmail(result.getString("email"));
                objUser.setCpf(result.getString("cpf"));


                list.add(objUser);

            }

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "UserDAO " + e);
        }
        return list;

    }

Onde é criado este list?

Esse foi criado na view

Não, na lista crias uma variavel que vai apontar para o resultado deste método, não crias a lista. A lista é criada em algum ponto que faças new.
O que parece que está a acontecer aqui é que tu crias a lista uma vez na classe (em algum lugar do código que não colocaste aqui) e depois estás sempre a adicionar elementos à mesma lista, ficando por isso com objetos repetidos.