Realizando um SELECT que recebe um parametro recebido na assinatura de um método

E ai pessoal, beleza?

Preciso muito de uma ajuda de vcs aqui…

Estou fazendo um método de listaAtividadesPorParametros, onde recebo um argumento em minha servlet com o dado q preciso pesquisar no banco. Porém, quando realizo a pesquisa, não me lança exception porém me mostra a mensagem que não existe dados a serem listados, mas na verdade existe sim. Com certeza minha select está errada, mas alguem poderia me dizer onde? Ou melhor, como passar o parametro recebido??

Segue o metodo abaixo:

    public List<Atividade> listarAtividadePorParametros(String numeroParamentro, String nome, String data) throws SQLException {
        Connection con = getConnection();
        String sql = "select a1.SYS_UID, a1.NUMERO, a1.DESCRICAO, a1.DATA_HORA_INICIAL, a1.DATA_HORA_FINAL from GERAL.ATIVIDADE a1 WHERE a1.DESCRICAO = '@nome' ";
        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery(sql);     

...   

Se alguem poder me ajudar, agradeceria muito.

Da uma olhada se isso é o que vc procura.

http://www.arquivodecodigos.net/arquivo/visualizar_dica.php?qual_dica=597

[]'s

Se quiser aproveitar seu código:

public List<Atividade> listarAtividadePorParametros(String numeroParamentro, String nome, String data) throws SQLException { Connection con = getConnection(); String sql = "select a1.SYS_UID, a1.NUMERO, a1.DESCRICAO, a1.DATA_HORA_INICIAL, a1.DATA_HORA_FINAL from GERAL.ATIVIDADE a1 WHERE a1.DESCRICAO = '" + nome + "' "; PreparedStatement stmt = con.prepareStatement(sql); ResultSet rs = stmt.executeQuery(sql);Obs: Mas da uma lida no link enviado pelo colega acima que explica o correto uso do PreparedStatement.

Abraços.

Não sei se é o caso de uma mudança (se daria muito trabalho), mas ja pensou em usar o Hibernate?? fica muito bom com notação JPA.

http://www.guj.com.br/article.show.logic?id=174

se ajudar, tah valendo…

:stuck_out_tongue:

A questão de framework, claro q ajudaria, mas na empresa em q estou, estou totalmente proibido de uso de frameworks, tanto como hibernate, jpa, struts e etc.
Por isso estou usando JDBC puro. Puramente servlet, XML e java. Mas tranquilo.

Cara…fiz exatamente como vc disse…mas me deu a seguinte exception

Falha ao converter para representação interna

E em relação ao meu Statement, não acredito q esteja errado, ou está??


    public List<Atividade> listarAtividadePorParametros(String numeroParametro, String nome, String data) throws SQLException {
        Connection con = getConnection();
        String sql = "select a1.SYS_UID, a1.NUMERO, a1.DESCRICAO, a1.DATA_HORA_INICIAL, a1.DATA_HORA_FINAL from GERAL.ATIVIDADE a1 WHERE a1.DESCRICAO =  '" + nome + "' ";
        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();        

        List<Atividade> atividades = new ArrayList<Atividade>();
        
        while(rs.next()){
            Atividade atividade = new Atividade();
            atividade.setId(rs.getInt("SYS_UID"));
            atividade.setNumero(rs.getInt("NUMERO"));
            atividade.setDescricao(rs.getString("DESCRICAO"));
            atividade.setDataHoraInicial(rs.getDate("DATA_HORA_INICIAL"));
            atividade.setDataHoraFinal(rs.getDate("DATA_HORA_FINAL"));
            atividades.add(atividade);
        }

        return atividades;
    }        

gabriel.coelho, da uma olhadinha no link que te enviei acima, do jeito que vc fez funciona mas vc esta abrindo uma grande brecha de segurança no seu sistema passando o parametro direto na consulta.

[]'s

Podem ser esses underscores em: DATA_HORA_INICIAL e DATA_HORA_FINAL, já que no Select eles não possuem os underscores.