Exception ao cadastrar..

20/03/2018

0

Fala galera, boa tarde.
Estou cm a cabeça cheia já, já revirei essa programação de baixo pra cima e vice versa, e não acho o erro dessa “budega”… Rsrsrs…

OBS: O erro não me impede de executar a aplicação…
Ao cadastrar um produto, me retorna um erro em uma determinada linha, mas não estou sabendo lhe dar com isso… Vou colocar a tabela do meu banco, desde a programação da aplicação java, pra vocês me auxiliar.

Tabela no meu banco de dados, onde irei fazer o cadastro:

CREATE TABLE Produto (
    id_produto int (6) NOT NULL AUTO_INCREMENT, 
    id_fornecedorFK int (6) not null, 
    id_categoriaFK int (6) not null, 
    nome_produto varchar(30) not null,                                  
    quantidade int(6) default null,
    valor_entrada varchar(20) default null,
    valor_venda varchar(20) default null,    
    data_entrada date default null,
    primary key (id_produto),
    
    constraint id_fornecedorFK FOREIGN KEY (id_fornecedorFK) REFERENCES Fornecedor (id_fornecedor),
    constraint id_categoriaFK FOREIGN KEY (id_categoriaFK) REFERENCES Categorias (id_categoria)
    );

Parte da minha classe onde eu faço todo o tramite da aplicação (OBS: Coloquei em maiúsculo onde o erro volta, pra se destacar melhor).

String cadastraProduto = "INSERT INTO PRODUTO (ID_FORNECEDORFK, ID_CATEGORIAFK, NOME_PRODUTO, QUANTIDADE, VALOR_ENTRADA, VALOR_VENDA, DATA_ENTRADA) " 
            + " VALUES (?,?,?,?,?,?,?)";

public void cadastrarProduto(ProdutoBean cadastros){
        
        try{
            AcessoMySql2 mysql = new AcessoMySql2();
            
            pstm = mysql.conectar().prepareStatement(cadastraProduto);
           
            pstm.setInt(1, cadastros.getId_fornecedor()); // ERRO SEMPRE VOLTA AQUI !!!
            pstm.setInt(2, cadastros.getId_categoria()); 
            pstm.setString(3, cadastros.getNome_produto());
            pstm.setInt(4, cadastros.getQuantidade()); 
            pstm.setString(5, cadastros.getValor_entrada());
            pstm.setString(6, cadastros.getValor_venda());            
            java.sql.Date d = new java.sql.Date(cadastros.getData_entrada().getTime());
            pstm.setDate(7,d);
            pstm.executeUpdate();
            
            mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
        
    }

E por ultimo, meu JFrame, onde pego valores de outras tabelas, digito, e chamo essa função para cadastrar.

 protected void cadastrarProduto() throws ParseException{
        
            ProdutoBean cadastro = new ProdutoBean();
            
 //           DateFormat form = new SimpleDateFormat("dd/MM/yyyy");
            java.util.Date dataEntrada = (java.util.Date) jdcDataEntrada.getDate();
            java.sql.Date dataSql = new java.sql.Date(dataEntrada.getTime());
           cadastro.setId_fornecedor(fornecedor.get(cbFornecedores.getSelectedIndex()).getId_fornecedor());
            cadastro.setId_categoria(categoria.get(cbCategoria.getSelectedIndex()).getId_categoria());
            cadastro.setNome_produto(tfNomeProduto.getText().trim());            
            cadastro.setQuantidade(Integer.parseInt(tfQuantidade.getText().trim()));
            cadastro.setValor_entrada(tfValorEntrada.getText().trim());
            cadastro.setValor_venda(tfValordeVenda.getText().trim());
            cadastro.setData_entrada(dataSql);
                                
            ProdutoControl p = new ProdutoControl();
            p.cadastrarProduto(cadastro);
                  
    
     }

O erro que me retorna é este: java.lang.NullPointerException
at br.com.sisVendas.produto.ProdutoControl.cadastrarProduto(ProdutoControl.java:51)

Linha 51 é a linha que falei ali em cima.
Agradeço a todos que puder me ajudar. Fico no aguardo.
Vinicius

Vinicius

Responder

Post mais votado

21/03/2018

Olá
Se ele está indicando o erro de NullPointer nessa linha é porque o id_fornecedor não está recebendo nada. Verifica melhor se teu combobox tá pegando mesmo a id, talvez seja isso.
cadastro.setId_fornecedor(fornecedor.get(cbFornecedores.getSelectedIndex()).getId_fornecedor());

Renata Fraga

Renata Fraga
Responder

Mais Posts

21/03/2018

Vinicius

É isso mesmo, eu debuguei e vi que os dois combobox está recebendo null, mas os outros valores estão normais. Só que não estou entendendo o porque de está recebendo null, sendo que nos combobox é listado os itens. Ai eu seleciono e não está pegando. To quebrando a cabeça aqui. Tem como me dar uma mão !?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar