Como criar uma consulta de vários campos diferentes com MYSQL

Ola pessoal,

Estou precisando criar um método que execute uma consulta de diferentes tipos de campos, por exemplo tenho uma tela na web com os segintes campos:

Nome , telefone , endereço , sexo

Na minha tela de consulta, vou inserir o nome e o sexo e então ira fazer uma consulta com todos os registros atuais existentes no banco com o nome e o sexo que eu digitei… ou seja uma consulta onde pode ser inserido 1 campo ou 2 , 3 ou mais campos… acho que ficou bem explicado… vou colocar o que eu já fiz do meu método…

Obrigado.

De acordo com esse método a minha clausula do select faz a consulta utilizando ‘and’ fazendo com que seleciona somente o registro onde data e vendedor e contato sejam iguais ao da busca, e não é isso que eu quero…

Como deve ficar meu select, ou meu método ?

A dúvida é como pegar todos os dados do Select??? Se sim, é só fazer um while no resultset, algo assim

while (rs.next()) {
  valor1 = rs.getString("valor1");
  valor2.......
}

O correto seria armazenar esses valores dentro de uma Collection, mandar via request para o JSP e lá ler esses dados.

Faz uma pesquisa no fórum ou no google que isso já foi abordado diversas vezes

Olá Regis.
Você deve ter uma lista com os campos da consulta no estilo nome/valor. Exemplo
“NOME=‘JOAO’, SEXO=‘M’, CIDADE=‘SP’”. Então você teria uma classe que vai “montar” a sua sql. Ela pode ter um método “parse” que vai percorrer esta lista, e montar a sql. Algo do tipo:

public class Parser {

  public String getSQL(Collection fields) {
     private String sql;
     private String fieldName;
     private String fieldValue;
     for (i=0; i &lt fields.count; i++) {
       fieldName = ...//pega a posição do campo no item da lista
       fieldValue = ...//pega a posição do valor no item da lista
       sql = sql + ' AND ' + fieldName + '=' + fieldValue;
     }
     return sql;
  }

}

E ae alguém chama esse método passando a lista de campos/valores, e o método lhe devolve a sql pronta para ser executada.

Abraço !

A duvida não é pegar todos os dados do select…

A duvida é como realizar uma busca no meu banco com dados inseridos pelo usuario em uma tela minha em .jsp , onde se o usuario digitar nome= x , busca todos os nomes com x e se ele colcar nome = x e sexo =y lista todos os nomes e sexo iguais ao que ele digitou… ± isso,procurei alguns tópicos relacionados e nada… não tenho conhecimento sobre servlet… gostaria de fazer usando somente jsp…

Muito obrigado, já estou implementando sua solução aqui ! Tenho certeza de que vai funcionar ! Valeu pela ajuda. :slight_smile: :slight_smile: :slight_smile: :slight_smile: :lol:

Tente assim:

String sql = “select * from tbatendimento where nome like '” + nome + “%’ and sexo like '” + sexo + “%’ and outrocampo like '”+ data +"%’";

A função like concatena as opções, se voce não informar nada, ele trará todos…

Wellington Marinheiro