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.
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…

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.