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.