Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou desenvolvendo um Quiz em java para um trabalho da faculdade, e nesse quiz gostaria de criar um Ranking que apresentaria os jogadores com as melhores pontuações e que ficariam salvo em um BD. Consigo gravá-los normalmente, porém na hora de exibi-los está dando um problema.
Por exemplo: Tenho 4 registros, Beltrano - Fulano - Ciclano - Beltrana.
Faço o método para retornar estes 4 registros, que são alocados a um ArrayList. Porém ele só me retorna: Beltrana - Beltrana - Beltrana - Beltrana. Que no caso é o último registro. Sempre todos os registros ficam com os mesmos valores do último registro.
Segue código:
public List<Jogador> rankingJogadores() throws Exception {
try {
conn = this.conn;
ps = conn.prepareStatement("SELECT * FROM jogador");
rs = ps.executeQuery();
List<Jogador> lista = new ArrayList<Jogador>();int cod = rs.getInt(1);
String nome = rs.getString(2);
int pontos = rs.getInt(3);
int acertos = rs.getInt(4);
lista.add(new Jogador(nome, pontos, acertos));
}
return lista;
} catch (SQLException sqle) {
throw new Exception(sqle);
} finally {
ConnectionFactory.closeConnection(conn, ps, rs);
}
}
Se eu coloco um
System.out.println(nome + " - " + pontos + " - " + acertos);
acima de
lista.add(new Jogador(nome, pontos, acertos));
Vai me mostrar as variáveis com os valores corretos, porém quando são salvas no list ocorre este erro. Alguma solução?
Carregando comentários...