Como atribuir uma condição SQL em um médoto List<>?

Olá galera, estou com um problema em colocar uma condição SQL no método List<> de depois chamar a JSP para listar já com a condição satisfeita… Vou colocar uma parte de do códgio do método e uma parte da JSP…


//Método que Lista

public List<Pesquisa> getLista() {
            
            try {
                List<Pesquisa> pesquisas = new ArrayList<Pesquisa>();
                PreparedStatement stmt = this.connection.prepareStatement
                        ("select * from pesquisa");
                
                ResultSet rs = stmt.executeQuery();
                
                while (rs.next()) {
                    
                    Pesquisa pesquisa = new Pesquisa();
                    pesquisa.setCodigo(rs.getString("codigo"));
                    pesquisa.setTitulo(rs.getString("titulo"));
                    
                    Calendar data = Calendar.getInstance();
                    data.setTime(rs.getDate("data_de_inicio"));
                    pesquisa.setDataInicio(data);
                    
                    Calendar data2 = Calendar.getInstance();
                    data2.setTime(rs.getDate("data_de_termino"));
                    pesquisa.setDataTermino(data2);
                    
                    pesquisa.setNumDocente(rs.getString("id_docente"));
                    pesquisa.setHorasSemanais(rs.getInt("horas_por_semana"));
                    
                    pesquisas.add(pesquisa);
                }
                
                rs.close();
                stmt.close();
                return pesquisas;
                
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }

//Parte da JSP que lista as pesquisas

<c:forEach var="pesquisa" items="${dao.lista}">
                
                    <tr>
                        <td> ${pesquisa.codigo} </td>
		
                        <td> ${pesquisa.titulo} </td>
                        
                        <td>
                            <fmt:formatDate value="${pesquisa.dataInicio.time}" 
                                            pattern="dd/MM/yyyy" /> 
                        </td>
                        
                        <td>
                            <fmt:formatDate value="${pesquisa.dataTermino.time}" 
                                            pattern="dd/MM/yyyy" />
                        </td>
                        
                        <td> ${pesquisa.numDocente} </td>
                    
                        <td> ${pesquisa.horasSemanais} </td>
                    <tr>
            </c:forEach>

Então eu queria saber uma forma de adicionar uma condição, tem alguma forma de levar o parametro da JSP para o método? Obrigado desde já…

Sinceramente, não entendi nada.
O que você quer fazer?
E que parâmetro você quer passar/espera receber se o método não tem indicação de parâmetro algum?

//Método que Lista  
  
public List<Pesquisa> getLista() {  
              
            try {  
                List<Pesquisa> pesquisas = new ArrayList<Pesquisa>();  
                PreparedStatement stmt = this.connection.prepareStatement  
                        ("select * from pesquisa where id_docente = " + //Aqui ficaria o parametro que vem da JSP);  
                  
                ResultSet rs = stmt.executeQuery();  
                  
                while (rs.next()) {  
                      
                    Pesquisa pesquisa = new Pesquisa();  
                    pesquisa.setCodigo(rs.getString("codigo"));  
                    pesquisa.setTitulo(rs.getString("titulo"));  
                      
                    Calendar data = Calendar.getInstance();  
                    data.setTime(rs.getDate("data_de_inicio"));  
                    pesquisa.setDataInicio(data);  
                      
                    Calendar data2 = Calendar.getInstance();  
                    data2.setTime(rs.getDate("data_de_termino"));  
                    pesquisa.setDataTermino(data2);  
                      
                    pesquisa.setNumDocente(rs.getString("id_docente"));  
                    pesquisa.setHorasSemanais(rs.getInt("horas_por_semana"));  
                      
                    pesquisas.add(pesquisa);  
                }  
                  
                rs.close();  
                stmt.close();  
                return pesquisas;  
                  
            } catch (SQLException e) {  
                throw new RuntimeException(e);  
            }  
        } 

Foi mal por não ter ficado tão claro… Mas a dúvida é: Tem alguma forma de receber o parametro indicado acima vindo da JSP?

public List<Pesquisa> getLista(String sql) {  
              
            try {  
                List<Pesquisa> pesquisas = new ArrayList<Pesquisa>();  
                PreparedStatement stmt = this.connection.prepareStatement  
                        (sql); 

Na string sql, passe o que você quer.

Ah, entendi. Você precisa de um objeto no qual você deve inserir os parâmetros da pesquisa, e o “getLista” deve então preparar o SQL de acordo com esses parâmetros :slight_smile:

Isso, uma forma de mandar o parametro da JSP para o método já que não passa por nenhuma classe adicional, a JSP já usa o método direto, daí teria que enviar o parametro da JSP para o método e usá-lo na condição… Porém, não sei como faz…