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

5 respostas
R

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 ?

5 Respostas

J

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

L

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 !

R

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…

R

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:

W

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

Criado 14 de novembro de 2006
Ultima resposta 14 de nov. de 2006
Respostas 5
Participantes 4