| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2012 16:10:58
|
lucas.sistemas
Thread.start()
Membro desde: 16/05/2010 09:25:43
Mensagens: 28
Offline
|
Boa Tarde, Pessoal
Gostaria de uma ajuda de qual melhor forma para se montar uma "pesquisa ou filtro" de dados já cadastrados no banco de dados.
Possuo um Jframe chamado JConsulta o qual possui 5 campos, sendo eles do tipo: 2 JFormattedTextField, 2 JTextField e 1 JComboBox, e um botão pesquisar.
A lógica é a seguinte ao clicar no botão pesquisar ele irá chamar uma classe ConsultaDAO onde possuo métodos que me retornam um list.
Então dependendo da quantidade de campos que eu preencher no JConsulta a consulta ficará mais refinada.
Pensei em verificar cada campo do JConsulta com vários if, mas dessa forma terei que fazer muitos ifs. Vocês possuem uma solução mais simples.
Ah.. eu possuo duas classes uma VO que possui os 5 campos (Consulta) e a DAO (ConsultaDAO).
SEGUE ABAIXO:
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2012 16:32:34
|
yhhik
Java Ninja
![[Avatar]](/images/avatar/f214de324bae78de5d8ff039c13c0898.jpg)
Membro desde: 06/05/2011 13:52:11
Mensagens: 291
Localização: Brasilia-DF
Offline
|
eu criaria métodos sobrecarregados.
|
att.
Mário Yhhik.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2012 16:39:56
|
lucas.sistemas
Thread.start()
Membro desde: 16/05/2010 09:25:43
Mensagens: 28
Offline
|
então vou fazer isso sim no meu ConsultaDAO. Só não sei como fazer o filtro antes de chegar no consultaDAO.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2012 16:45:07
|
lucas.sistemas
Thread.start()
Membro desde: 16/05/2010 09:25:43
Mensagens: 28
Offline
|
A solução seria mais ou menos assim:
String valor1 = JtextField.gettext();
if ( valor1.isEmpety())
{
.....} else if (valor1.isEmpety && valor2.isEmpety) {....}
Ou seja tenho vários campos para verificar, gostaria de algo mais simples e rápido.....
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2012 17:02:59
|
yhhik
Java Ninja
![[Avatar]](/images/avatar/f214de324bae78de5d8ff039c13c0898.jpg)
Membro desde: 06/05/2011 13:52:11
Mensagens: 291
Localização: Brasilia-DF
Offline
|
eh colega..acho que não vai ter como fugir não..
|
att.
Mário Yhhik.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2012 19:16:43
|
ADEMILTON
JavaGuru
Membro desde: 29/04/2006 17:53:21
Mensagens: 236
Offline
|
Veja essa idéia: no método initComponents você pode criar um List<Object> e inserir nele esses componentes. Daí, no momento de realizar a consulta você só dá um for each nesse list, vai fazendo os casts necessários e pegando o conteúdo de cada um. Então é só montar uma String concatenando esses valores com os trechos necessários para completar sua instrução SQL.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2012 11:19:40
|
fantomas
GUJ Master
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1534
Localização: Terra (maior parte do tempo)
Offline
|
Honestamente não sei se entendi bem a questão mas vamos lá:
Você poderia associar os nomes do componentes (JTextField e etc...) com o nome das colunas da consulta. Após executar a consultada vc poderia acessar a lista de componentes do painel e obter o componente apropriado através do nome da coluna x nome do componente e aplicar o conteúdo.
flws
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2012 11:55:38
|
discorpio
Virtual Machine Man
Membro desde: 06/02/2010 18:46:46
Mensagens: 547
Localização: Rio de Janeiro
Offline
|
Boa tarde a todos.
Como disse o nosso amigo Yhhik, não há como fugir dos testes dos "IFs", contudo para amenizar o seu sofrimento, eu construi um método chamado getWhere() que retorna uma String caso algum campo esteja populado, eu populo um objeto chamado Bean (ServidorBean) com os JComboBox, JTextFields e etc e depois passo este bean para o DAO como referência, desta forma:
Esta é uma forma abreviada de se usar os IFs, pelo menos ameniza um pouco seu sofrimento de escrever tanto código.
Um abraço
|
O Senhor é meu Pastor e nada me faltará. (Sl. 23:01) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2012 16:58:50
|
lucas.sistemas
Thread.start()
Membro desde: 16/05/2010 09:25:43
Mensagens: 28
Offline
|
muito obrigado pessoal mas vou fazer os if mesmo...!!!
|
|
|
 |
|
|
|
|