Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pellegrini2106

Consulta carrega somente o ultimo registro da tabela

Recommended Posts

Olá amigos do fórum!!

 

O meu problema e o seguinte tenho um código para fazer uma consulta de nomes desenvolvido no padrão M.V.C só que na hora de consultar traz somente para mim o ultimo registro da tabela e não ela toda.

 

CAMADA MODELO

public void consultarPs() {

try {
ps = cnx.prepareStatement("SELECT nome FROM pessoa");
rs = ps.executeQuery();
while(rs.next()) {
this.nome = rs.getString("nome");
}
ps.close();
rs.close();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
}

 

CAMADA CONTROLE

 

public void ctlConsultar(){

ArrayList<Pessoa> pso = new ArrayList<>();

Pessoa ps1 = new Pessoa();
pso.add(ps1);
ps1.consultarPs();

for (Pessoa pso1 : pso) {
System.out.println(pso1.getNome());
}
}

 

CAMADA DE EXECUÇÃO:

 

package visao;

import controle.controlePs;

public class execute {
public static void main(String[] args) {
controlePs cps = new controlePs();
cps.ctlConsultar();
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que popular uma lista do objeto pessoa dentro do while no metodo consultarPs() e retornar esta lista.

Veja este exemplo de CRUD.

https://danielniko.wordpress.com/2012/04/17/simple-crud-using-jsp-servlet-and-mysql/

Amigo RockGo fiz como você me mandou mais continua carregando o ultimo registro da tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica é esta conforme exemplo do link é só adaptar seu model.

public List<Pessoa> getAll() {
        List<Pessoa> pessoas = new ArrayList<Pessoa>();
        try {
            Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("select * from pessoa");
            while (rs.next()) {
                Pessoa p = new Pessoa();
                p.setNome(rs.getString("nome"));
                pessoas.add(p);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return pessoas;
    }

Seu método que seleciona tem que retornar uma lista, no seu seu caso você só está setando o nome, por isso ele pega sempre o ultimo.

 

Você está separando sua aplicação em Beans, DAO, Etc ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.