Ajuda montar pesquisa com vários Jtextfield e JCombobox  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
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:







yhhik
Java Ninja
[Avatar]

Membro desde: 06/05/2011 13:52:11
Mensagens: 291
Localização: Brasilia-DF
Offline

eu criaria métodos sobrecarregados.

att.
Mário Yhhik.




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.
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.....
yhhik
Java Ninja
[Avatar]

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.




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.
[MSN]
fantomas
GUJ Master
[Avatar]

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
discorpio
Virtual Machine Man
[Avatar]
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)
[MSN]
lucas.sistemas
Thread.start()

Membro desde: 16/05/2010 09:25:43
Mensagens: 28
Offline

muito obrigado pessoal mas vou fazer os if mesmo...!!!
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team