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);
...
Agradeço desde já a quem poder me ajudar.
Olá…
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);
...
Essa é a comparação feita usando o parâmetro nome, quanto aos outros descreva melhor quais atributos serão comparados com quais parâmetros.
amigo faça assim
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 = ?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, nome);
ResultSet rs = stmt.executeQuery(sql);
assim vc tira proveito do PreparedStatement;
de uma pesquisada sobre PreparedStatement, e depois sobre o padrao DAO
abrasssss
[quote=gabriel.coelho]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);
...
Agradeço desde já a quem poder me ajudar.[/quote]
eu faria assim:
public List<Atividade> listarAtividadePorParametros(String numeroParamentro, String nome, String data) throws SQLException {
Connection con = getConnection();
StringBuffer sql = new StringBuffer();
sql.append(" select a1.SYS_UID, a1.NUMERO, a1.DESCRICAO, ");
sql.append(" a1.DATA_HORA_INICIAL, a1.DATA_HORA_FINAL ");
sql.append(" from GERAL.ATIVIDADE a1 ");
sql.append(" WHERE 1 =1 ");
if(!nome.equalsIgnoreCase("")){
sql.append(" and a1.DESCRICAO = ");
}
PreparedStatement stmt = con.prepareStatement(sql);
int index =1;
if(!nome.equalsIgnoreCase("")){
stmt.setString(index++, nome);
}
ResultSet rs = stmt.executeQuery(sql);
...
acho que isso resolve o seu problema… quanquer dúvida poste aqui…
Isso ae cara…valeu mesmo…
Agora funcionou de boa…valeu mesmo.
Abraços.
Para quem tiver essa duvida…segue abaixo como realizei esse select:
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 1=1";
if(numeroParametro != null && !numeroParametro.equals("")){
sql += " and a1.NUMERO = ?";
}
if(nome != null && !nome.equals("")){
sql += " and a1.DESCRICAO = ?";
}
if(data != null && !data.equals("")){
sql += " and a1.DATA_HORA_INICIAL = ?";
}
PreparedStatement stmt = con.prepareStatement(sql);
int pos = 1;
if(numeroParametro != null && !numeroParametro.equals("")){
stmt.setString(pos++, numeroParametro);
}
if(nome != null && !nome.equals("")){
stmt.setString(pos++, nome);
}
if(data != null && !data.equals("")){
stmt.setString(pos++, data);
}
ResultSet rs = stmt.executeQuery();
Abraços pra todos.