Nao consigo localizar os dado no banco pq?

2 respostas
leandro-maanaim

Pessoal nao concigo localizar dados na tabela de fornecedores pq esse código nao funciona? em outros formularios ele funciona perfeitamente :S

try
         {
              conexao.resultset.first();
    
               while(conexao.resultset.next())
                    {
                         String guarda = conexao.resultset.getString("nomeFornecedor");
                         if(guarda.equalsIgnoreCase(nomeFornecedor.getText()))
                         {
                             
                             mostraDados();
                             
                         }
                         else
                         {
                             
                         }
                    }
                      codigoSistem.setText(conexao.resultset.getString("codigo"));
               mostraDados();
               itemPesquisa.setSelectedItem(nomeFornecedor.getText());
         }
         catch(SQLException erro)
         {
               JOptionPane.showMessageDialog(null, "Não existe nenhum equipamento cadastrado com essas iniciais","Informação do Sistema",JOptionPane.ERROR_MESSAGE);
         }

Gera o seguinte erro:

run:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Cadastros.CadastroDeFornecedores.jTextField18ActionPerformed(CadastroDeFornecedores.java:1272)
at Cadastros.CadastroDeFornecedores.access$000(CadastroDeFornecedores.java:26)
at Cadastros.CadastroDeFornecedores$1.actionPerformed(CadastroDeFornecedores.java:422)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2884)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
at java.awt.Component.processEvent(Component.java:5911)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:704)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:969)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:841)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:668)
at java.awt.Component.dispatchEventImpl(Component.java:4373)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 10 segundos)

2 Respostas

L

cara debug o codigo ha algo nulo na linha 1272

B
leandro-maanaim:
try
         {
              conexao.resultset.first();
    
               while(conexao.resultset.next())
                    {
                         String guarda = conexao.resultset.getString("nomeFornecedor");
                         if(guarda.equalsIgnoreCase(nomeFornecedor.getText()))
                         {
                             
                             mostraDados();
                             
                         }
                         else
                         {
                             
                         }
                    }
                      codigoSistem.setText(conexao.resultset.getString("codigo"));
               mostraDados();
               itemPesquisa.setSelectedItem(nomeFornecedor.getText());
         }
         catch(SQLException erro)
         {
               JOptionPane.showMessageDialog(null, "Não existe nenhum equipamento cadastrado com essas iniciais","Informação do Sistema",JOptionPane.ERROR_MESSAGE);
         }

Creio que seu código possui um erro.
Você chama o método first() do ResulSet, que posiciona no primeiro registro.
Logo depois está o loop, que você utiliza o next() como condição, que pula um registro e retorna se há algum outro depois.

Ou seja, se seu ResultSet só possuir um registro, seu programa não fará o bloco do while.
Pois quando ele chamar o método next(), não terá um segundo registro.

Assim, provavelmente ocasionando o nullPointerException.

Sugestão: remova essa linha
conexao.resultset.first();
Criado 13 de novembro de 2009
Ultima resposta 13 de nov. de 2009
Respostas 2
Participantes 3