Não estou conseguindo registrar uma venda

Vinicius LM , O Erro que esta dando é de java.lang.NullPointerException

Classe RegistrarVenda


 private void cadastrarVenda(){
        if (venda.size() == 0){
            JOptionPane.showMessageDialog(this, "Inclua pelo menos um produto!");
        } else {
            try {
                VendasControl vc = new VendasControl();
                SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
                java.util.Date d = new java.util.Date();
                Date data = Date.valueOf(formato.format(d));
                int codigo = vc.buscarCodigoUltimaVenda() + 1;
                for (int i = 0; i < venda.size(); i++){
                    venda.get(i).setClientes_Codigo(clientes.get(cbClientes.getSelectedIndex()).getCodigo());
                    venda.get(i).setDataVenda(data);
                    venda.get(i).setCodigo(codigo);
                    vc.cadastrarVenda(venda.get(i));
                }
                JOptionPane.showMessageDialog(this, "Venda cadastrada com sucesso!");
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(this, "Erro ao cadastrar Venda!");
            }
        }
    }

Classe VendasControl


public class VendasControl {
    
    PreparedStatement pstm;
    ResultSet rs;
    String cadastraVenda = "INSERT INTO VENDAS (CODIGO, PRODUTOS_CODIGO, CLIENTES_CODIGO, QUANTIDADEITENS, DATAVENDA, DESCONTO, TOTAL)" +
            " VALUES(?,?,?,?,?,?,?)";
    String buscaUltimoCodigo = "SELECT MAX(CODIGO) AS CODIGO FROM VENDAS";
    String consultaVendas = "SELECT * FROM VENDAS WHERE DATA_VENDA BETWEEN ? AND ?";
    
    AcessoMySql bd = new AcessoMySql();
    
    
    /** Creates a new instance of VendasControl */
    public VendasControl() {

 public void cadastrarVenda(VendasBean venda){
        try {
            pstm = bd.conectar().prepareStatement(cadastraVenda);
            pstm.setInt(1, venda.getCodigo());
            pstm.setInt(2, venda.getProdutos_Codigo());
            pstm.setInt(3, venda.getClientes_Codigo());
            pstm.setInt(4, venda.getQuantidadeitens());
            pstm.setDate(5, venda.getDataVenda());
            pstm.setDouble(6, venda.getDesconto());
            pstm.setDouble(7, venda.getTotal());
            pstm.executeUpdate();
            bd.desconectar();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

Classe VendasBean


package br.com.sisvenda.vendas;

import java.sql.Date;

/**
 *
 * @author Cláudio
 */
public class VendasBean {
    
    /** Creates a new instance of VendasBean */
    public VendasBean() {
    }
    
    private Integer codigo;
    private Integer Produtos_Codigo;
    private Integer Clientes_Codigo;
    private Integer quantidadeitens;
    private Date datavenda;
    private Double desconto;
    private Double total;

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public Integer getProdutos_Codigo() {
        return Produtos_Codigo;
    }

    public void setProdutos_Codigo(Integer Produtos_Codigo) {
        this.Produtos_Codigo = Produtos_Codigo;
    }

    public Integer getClientes_Codigo() {
        return Clientes_Codigo;
    }

    public void setClientes_Codigo(Integer Clientes_Codigo) {
        this.Clientes_Codigo = Clientes_Codigo;
    }

    public Integer getQuantidadeitens() {
        return quantidadeitens;
    }

    public void setQuantidadeitens(Integer quantidadeitens) {
        this.quantidadeitens = quantidadeitens;
    }

    public Date getDataVenda() {
        return datavenda;
    }

    public void setDataVenda(Date dataVenda) {
        this.datavenda = datavenda;
    }

    public Double getDesconto() {
        return desconto;
    }

    public void setDesconto(Double desconto) {
        this.desconto = desconto;
    }

    public Double getTotal() {
        return total;
    }

    public void setTotal(Double total) {
        this.total = total;
    }
 
    
    
}

Por favor me ajudem , pois eu estou estudando Java nessas video aulas e esta dando erro ao cadastrar venda, manda uma janela informativa como um javascript falando erro ao cadastrar venda

Cara por favor edita teu codigo e coloca entre as tags code

Assim tá impossivel.

Abs,

Leia isso antes de postar :slight_smile:

http://guj.com.br/java/15777-antes-de-voce-perguntar
http://guj.com.br/java/50115-voce-e-novo-no-guj-va...onte-leia-aqui-antes-por-favor

Cara, não adianta colar todo código do seu projeto (sem code tag ainda) e esperar que seu problema seja solucionado.
Tenta colocar mais informações do problema e menos código.

Taaaa pega rsrsrsrrs só de olhar o codigo assim como está meu cerebro da um loop :shock:

troca essa linha JOptionPane.showMessageDialog(this, “Erro ao cadastrar Venda!”);
por essa JOptionPane.showMessageDialog(this, ex);

Se voce deixar Erro ao cadastrar Venda, tudo o quando é tipo de problema vai retornar esse erro…
com o Exception ele vai te retornar o erro real que esta acontecendo e dai vc posta aqui.

Certo, verifique se você esta com a biblioteca de conexao no seu projeto.
Debug para ver o ponto exato onde ele para.
Para resposta não precisa editar a sua mensagem, clique ali em citar ou entao em responder ali embaixo, se editar fica dificil vermos que você respondeu.

Vinicius a biblioteca de conexão com o banco já esta incluida no projeto, esta dando esse erro ao depurar a classe RegistrarVenda

Ouvindo em 1486
Executando programa do usuário
Ponto de Interrupção na linha 12 na classe java.sql.DriverManager pela thread AWT-EventQueue-0.
Thread AWT-EventQueue-0 parada em DriverManager.java:12.

Classe DriverManager.Java

for (int i = 0; i < drivers.size(); i++) {
	    DriverInfo di = (DriverInfo)drivers.elementAt(i);
      
	    // If the caller does not have permission to load the driver then 
	    // skip it.
	    if ( getCallerClass(callerCL, di.driverClassName ) != di.driverClass ) {
		println("    skipping: " + di);
		continue;
	    }
	    try {
		println("    trying " + di);
		Connection result = di.driver.connect(url, info);
		if (result != null) {
		    // Success!
		    println("getConnection returning " + di);
		    return (result);
		}
	    } catch (SQLException ex) {
		if (reason == null) {
		    reason = ex;
		}
	    }
	}

Olha, linha 12 é onde ele fazer a conexao, ele não esta conseguindo estabelecer a conexão…
Em qual sistema você está fazendo?

Vamos às possibilidades.
1º - Verifique denovo se o driver de conexão esta no seu classpath.
2º - Verifique se os dados estão corretos, IP do servidort, Nome do banco
3º - Veja se o banco rodando
4º - Veja se EXISTE um banco (<-- não fique brabo, eu ja cometi esse erro)