Consulta SQL dinamica

2 respostas
vivi_grieco

olá a todos,
Estou desenvolvendo um sistema SWING que possui uma tela de consulta.
nesta tela, o usuário pode digitar todos os campos para a consulta (nome, linha, preço unitario, peso liquido, validade e codigo), ou apenas um ou alguns desses campos.
preciso fazer uma consulta em SQL onde na cláusula WHERE eu filtre apenas o q o usuário digitou. como eu faço essa consulta? Tipo, ela tem q ser feita “dinamicamente”, visto que eu nao posso prever quais campos o usuário irá preencher.
vcs poderiam me dar alguma luz de como resolver esse problema, de como fazer essa consulta?
Viviane Grieco

2 Respostas

cv1

Voce esta usando JDBC puro? Nesse caso, basta usar um PreparedStatement, e no WHERE fazer algo mais ou menos assim:

SELECT * FROM FOO F WHERE F.BAR LIKE %?% AND F.BAZ LIKE %?% AND F.BOZ LIKE %?%

Isso ja deve funcionar. Caso vc esteja usando aguma camada de mapeamento objeto-relacional (como Hibernate, por exemplo), fica mais facil ainda: é só usar a API de QBE (query by example) existente.

_fs

Tutorial de PreparedStatement:
http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html

o/

Criado 4 de dezembro de 2003
Ultima resposta 4 de dez. de 2003
Respostas 2
Participantes 3