Erro, Ajuda

4 respostas
A

Boa noite caros,

meu programa esta dando erro,não esta realizando a busca, já consigo inserir de boa

codigo do botao BUSCAR:

private void btBuscarActionPerformed(java.awt.event.ActionEvent evt) {

        if(evt.getSource()==btBuscar){
        setCampos(true,true,true,true,true,true,true,true);

        Vector<Produto> resultado = daoProduto.buscar(tfCodigo.getText());
    
      for (Iterator<Produto> iterator = resultado.iterator(); iterator // o erro esta mostrando está linha.
            .hasNext();) {
         Produto p = iterator.next();
         tfCodigo.setText(p.getCodigo());
         tfGrupo.setText(p.getGrupo());
         tfProduto.setText(p.getProduto());
         tfCompra.setText(p.getDataCompra());
         tfEstoque.setText(p.getEstoque());
         tfCusto.setText(p.getCusto());
         tfVenda.setText(p.getVenda());
         tfValidade.setText(p.getValidade());
           }
        }
    }

Codigo da classe DaoProduto

package dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JOptionPane;

import model.Produto;
import dao.banco.ConFactory;

public class DaoProduto {
   // Configura essas variáveis de acordo com o seu banco
   private final String URL = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:/meubd/banco.mdb",
         NOME = "", SENHA = "";

   private Connection con;
   private Statement comando;

   public void apagar(String codigo) {
      conectar();
      try {
         comando
               .executeUpdate("DELETE FROM produto WHERE codigo = '" + codigo
                     + "';");
      } catch (SQLException e) {
         imprimeErro("Erro ao apagar Produto", e.getMessage());
      } finally {
         fechar();
      }
   }

   public Vector<Produto> buscarTodos() {
      conectar();
      Vector<Produto> resultados = new Vector<Produto>();
      ResultSet rs;
      try {
         rs = comando.executeQuery("SELECT * FROM produto");
         while (rs.next()) {
            Produto temp = new Produto();
            // pega todos os atributos da pessoa
            temp.setCodigo(rs.getString("codigo"));
            temp.setGrupo(rs.getString("grupo"));
            temp.setProduto(rs.getString("produto"));
            temp.setDataCompra(rs.getString("datacompra"));
            temp.setEstoque(rs.getString("estoque"));
            temp.setCusto(rs.getString("custo"));
            temp.setVenda(rs.getString("venda"));
            temp.setValidade(rs.getString("validade"));
            resultados.add(temp);
         }
         return resultados;
      } catch (SQLException e) {
         imprimeErro("Erro ao buscar Produto", e.getMessage());
         return null;
      }
   }

   public void atualizar(Produto produto) {
      conectar();
      String com = "UPDATE produto SET grupo = '" + produto.getGrupo()
      + "', produto =" + produto.getProduto()
      + ", datacompra = '"   + produto.getDataCompra()
      + "', estoque ='" +produto.getEstoque()
      + "', custo ='" +produto.getCusto()
      + "', venda ='" +produto.getVenda()
      + "', validade ='" +produto.getValidade()
      + "' WHERE  codigo = '" + produto.getCodigo()
      + "';";
      System.out.println("Atualizada!");
      try {
         comando.executeUpdate(com);
      } catch (SQLException e) {
         e.printStackTrace();
      } finally {
         fechar();
      }
   }

   public Vector<Produto> buscar(String codigo) {
      conectar();
      Vector<Produto> resultados = new Vector<Produto>();
      ResultSet rs;
      try {
         rs = comando.executeQuery("SELECT * FROM produto WHERE codigo LIKE '"
               + codigo + "%';");
         while (rs.next()) {
            Produto temp = new Produto();
            // pega todos os atributos da pessoa
            temp.setCodigo(rs.getString("codigo"));
            temp.setGrupo(rs.getString("grupo"));
            temp.setProduto(rs.getString("produto"));
            temp.setDataCompra(rs.getString("datacompra"));
            temp.setEstoque(rs.getString("estoque"));
            temp.setCusto(rs.getString("custo"));
            temp.setVenda(rs.getString("venda"));
            temp.setValidade(rs.getString("validade"));
            resultados.add(temp);
         }
         return resultados;
      } catch (SQLException e) {
         imprimeErro("Erro ao buscar Produto", e.getMessage());
         return null;
      }

   }

   public void insere(Produto produto){
      conectar();
      try {
         comando.executeUpdate("INSERT INTO Produto VALUES('"
               + produto.getCodigo() + "','"
               + produto.getGrupo() + "','"
               + produto.getProduto() + "','"
               + produto.getDataCompra() + "','"
               + produto.getEstoque() + "','"
               + produto.getCusto() + "','"
               + produto.getVenda() + "','"
               + produto.getValidade() + "')");
        JOptionPane.showMessageDialog(null,"Operação realizada com sucesso!");
      } catch (SQLException e) {
         imprimeErro("Problemas na operação, verifique se você digitou os campos corretamente!", e.getMessage());
      } finally {
         fechar();
    }
 }

   private void conectar() {
      try {
         con = ConFactory.conexao(URL, NOME, SENHA, ConFactory.MYSQL);
         comando = con.createStatement();
         System.out.println("Conectado!");
      } catch (ClassNotFoundException e) {
         imprimeErro("Erro ao carregar o driver", e.getMessage());
      } catch (SQLException e) {
         imprimeErro("Erro ao conectar", e.getMessage());
      }
   }

   private void fechar() {
      try {
         comando.close();
         con.close();
         System.out.println("Conexão Fechada");
      } catch (SQLException e) {
         imprimeErro("Erro ao fechar conexão", e.getMessage());
      }
   }

   private void imprimeErro(String msg, String msgErro) {
      JOptionPane.showMessageDialog(null, msg, "Erro crítico", 0);
      System.err.println(msg);
      System.out.println(msgErro);
      
   }
}

Erro que está aparecendo:

Conectado!
Erro ao buscar Produto
Column not found
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at TelaProduto.btBuscarActionPerformed(TelaProduto.java:242)
        at TelaProduto.access$200(TelaProduto.java:7)
        at TelaProduto$3.actionPerformed(TelaProduto.java:82)
        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:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        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)

4 Respostas

F

Posta o nome das colunas das tabelas do banco.

Luciano_Lopes
Column not found //aqui diz claramente que a coluna não existe
java.lang.NullPointerException //exceção por causa da coluna que não existe
Você esta chamando uma coluna que não existe.
ViniGodoy

Procure dar títulos descritivos para seus tópicos. O título “Erro, Ajuda” não diz absolutamente nada sobre o conteúdo do tópico.
Um título como “Problema ao buscar do banco.” ou ainda “Erro de Column not found ao buscar do banco” seria bem melhor.

Por fim, como seu tópico é sobre persistência, vou move-lo para o fórum de persistência.
O fórum de interface gráfica geralmente é usando quando as dúvidas estão em sobre como montar a tela em si.

A

Consegui resolvar pessoal vlw era o nome das colunas mesmo

Criado 23 de julho de 2011
Ultima resposta 26 de jul. de 2011
Respostas 4
Participantes 4