SELECT COM executeQuery [RESOLVIDO]

12 respostas
PBOSCO

OLÁ AMIGOS,

ESTOU COM DIFICULDADES NA SITAXE DO COMANDO SELECT DENTRO DO executeQuery:
TENHO UM BANCO DE DADOS POSTGREE ONDE TENHO UMA TABELA CHAMADA “VISITAS” QUE CONTÉM UMA COLUNA COM O NOME “data_visita”. TENHO UM FORMULÁRIO QUE DENTRE OUTROS CAMPOS COLETA A DATA DESEJADA. COM ESTA DATA PESQUISO NO BANCO E PREENCHO UM COMBOBOX. EU PEGO A DATA DO CAMPO E COLOCO NUMA STRING E ESSA STRING USO COMO CONDIÇÃO “WHERE” NO “SELECT”.
EIS O CÓDIGO:

String saida = saida_data.getText();

rs = stm.executeQuery("SELECT nome_visitante FROM visitas where data_visita="+saida);

QUANDO FAÇO DESSA FORMA OBTENHO O SEGUINTE CÓDIGO DE ERRO:
[color=darkred][/color]

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "02/02/2011"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:456)
        at java.lang.Integer.parseInt(Integer.java:497)
        at visita.Tela.saida_procurarActionPerformed(Tela.java:850)
        at visita.Tela.access$500(Tela.java:33)
        at visita.Tela$6.actionPerformed(Tela.java:544)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6041)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5806)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4413)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

12 Respostas

drigo.angelo

Tá gritando por que??

gfkauer

2 Coisas:

1ª Favor não escrever tudo em caixa alta.
2ª Qual o tipo de dado da coluna data_saida?

Caso seja Date, voce estaria comparando um Date com uma String.
Eis uma possibilidade para o motivo do seu erro.

drigo.angelo

Tente usar o SimpleDateFormat para criar um objeto do tipo java.sql.Date

E utilize o PreparedStatement

PBOSCO

gfkauer:
2 Coisas:

1ª Favor não escrever tudo em caixa alta.
2ª Qual o tipo de dado da coluna data_saida?

Caso seja Date, voce estaria comparando um Date com uma String.
Eis uma possibilidade para o motivo do seu erro.

ok desculpem a caixa alta. É minha primeira vez no forum. quanto ao tipo de dados do campo “data_saida” o tipo é string.

drigo.angelo

Posta ai a Tela.java, próximo a linha 850!!

PBOSCO

drigo.angelo:
Tente usar o SimpleDateFormat para criar um objeto do tipo java.sql.Date

E utilize o PreparedStatement

ok amigo, me desculpe a ignorancia mas, vc poderia me mostrar um exemplo de como fazer?

PBOSCO

ok, desconsidere a linha 850. foi um lixo que deixei no código e ja corrigi. a sequencia de código que gera o erro é:

String saida = saida_data.getText();
try {
           rs = stm.executeQuery("SELECT nome_visitante FROM visitas where data_visita= " +saida);
          
            while (rs.next()){
            String dat = rs.getString("nome_visitante");
            saida_visitante.addItem(dat);
            
        }
        } catch (SQLException ex) {
            Logger.getLogger(Tela.class.getName()).log(Level.SEVERE, null, ex);
        }
drigo.angelo

Tenta isso: (Apesar das várias más práticas)

rs = stm.executeQuery("SELECT nome_visitante FROM visitas where data_visita= '" +saida+"'");
PBOSCO

[quote=drigo.angelo]Tenta isso: (Apesar das várias más práticas)

rs = stm.executeQuery("SELECT nome_visitante FROM visitas where data_visita= '" +saida+"'");

tentei e não funcionou…

drigo.angelo

Dá um “limpar e construir” testa de novo e posta o erro ai de novo por favor !

PBOSCO

ok amigo. fiz o que vcsugeriu e agora funcionou com o trecho de código que vc me passou.
muito obrigado pela ajuda. vc me salvou!!!
vlw

drigo.angelo

Falow

Já fui salvo várias vezes aqui também rsrs

Agora edita seu primeiro post e coloca [resolvido] no título do tópico :stuck_out_tongue:

Criado 8 de fevereiro de 2011
Ultima resposta 8 de fev. de 2011
Respostas 12
Participantes 3