OBS 2: Filme é um classe entidade com gets e sets normais
O jsp exibe o resultado sempre com o mesmo filme como resultado mas com o número de linhas da resposta correta. Por exemplo, quando eu faço o select no MySQL ele retorna 6 filmes e que o último da pesquisa é “Filme Qualquer”. No jsp ele retorna uma tabela de seis linhas com todas as informações sendo do “Filme Qualquer”.
Alguém sabe o que pode ser?
Já pesquisei aqui no fórum e não achei. Talvez não tenha procurado o suficiente, mas eu tentei.
Seu código do forEach está correto, vc já verificou se o seu atributo List está com dados corretos?
paulo1911
Olá amigo, mostre o método que vc adiciona os filmes a lista.
Valeu
felipeaqueiroz
Olá essa parte fica na classe FilmeDAO
publicArrayList<Filme>Pesquisa(Stringtipo,Stringpesquisa){Filmefilme=newFilme();ArrayList<Filme>filmes=newArrayList<Filme>();try{Connectionconn=ConnectionFactory.getConnection();Stringsql="SELECT * FROM filmes WHERE "+tipo+" LIKE '%"+pesquisa+"%'";PreparedStatementstmt=conn.prepareStatement(sql);ResultSetrs=stmt.executeQuery();while(rs.next()){filme.setId_filme(rs.getInt("id_filme"));filme.setNome(rs.getString("nome"));filme.setGenero(rs.getString("genero"));filme.setAno(rs.getInt("ano"));filmes.add(filme);}}catch(SQLExceptione){// TODO Auto-generated catch blocke.printStackTrace();}returnfilmes;}
Dei uma olhada rapida no codigo e parece estar tudo ok, esse select ta belezinha ?
faz o seguinte … coloca upercase na coluna assim como no parametro da clausula where
paulo1911
Olá amigo:
veja o erro:
while(rs.next()){// aqui vc inicia o while certo?filme.setId_filme(rs.getInt("id_filme"));//<-- Antes de setar vc precisa criar uma nova instancia do tipo Filme, ou seja crie outro objeto filma para conter os valoresfilme.setNome(rs.getString("nome"));filme.setGenero(rs.getString("genero"));filme.setAno(rs.getInt("ano"));filmes.add(filme);}
ajuste para:
while(rs.next()){Filmefilme=newFilme();// <-- remova a linha onde vc instancia o filme antes do try e coloque aqui!!filme.setId_filme(rs.getInt("id_filme"));filme.setNome(rs.getString("nome"));filme.setGenero(rs.getString("genero"));filme.setAno(rs.getInt("ano"));filmes.add(filme);//<-- OK! Adicionando um novo objeto filme a lista}