Problema de execuçao java com classe conexao

Sou aprendiz em programação e gostaria de uma ajuda de vocês e tenho problema com classe conexão com banco de dados alguém poderia me ajudar?

 private void CarregarProduto() {
   
        listaModelProduto = controllerProduto.retornarListaProdutoController();
        DefaultTableModel modelo = (DefaultTableModel) jTableProduto.getModel();
        modelo.setNumRows(0);
        // inserir produtos na tabela
        int cont = listaModelProduto.size(); // o [cont] ira contar quantos produtos tem lista
        for (int i = 0; i < cont; i++) { // o for ira preencher a lista
            modelo.addRow(new Object[]{
                listaModelProduto.get(i).getIdProduto(),
                listaModelProduto.get(i).getProNome(),
                listaModelProduto.get(i).getProEstoque(),
                listaModelProduto.get(i).getProValor()
            });
        }

    } esse é o metodo de lançar produtos na tabela.

 public boolean executarSQL(String pSQL){
        try {
          
            //createStatement de con para criar o Statement
                      statement = con.createStatement();
            // Definido o Statement, executamos a query no banco de dados
            this.setResultSet(getStatement().executeQuery(pSQL));
            
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            ex.printStackTrace();
            return false;
        }
        return true;
    } esse é um dos metodos de conexao  onde ocorre o erro

e ocorre essa excessao na qual nao estou conseguindo resolver:

java.lang.NullPointerException
at conexoes.Conexao.executarSQL(Conexao.java:75)
at DAO.DaoProdutos.retornaListaProdutoDao(DaoProdutos.java:130)
at controller.ControllerProduto.retornarListaProdutoController(ControllerProduto.java:60)
at view.ViewProduto.CarregarProduto(ViewProduto.java:304)
at view.ViewProduto.(ViewProduto.java:29)
at view.ViewProduto$6.run(ViewProduto.java:293)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at conexoes.Conexao.fecharConexao(Conexao.java:143)
at DAO.DaoProdutos.retornaListaProdutoDao(DaoProdutos.java:149)
at controller.ControllerProduto.retornarListaProdutoController(ControllerProduto.java:60)
at view.ViewProduto.CarregarProduto(ViewProduto.java:304)
at view.ViewProduto.(ViewProduto.java:29)
at view.ViewProduto$6.run(ViewProduto.java:293)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

O que tem nessa linha da sua classe de conexão?

Boa noite @Fernando_Souza2, NullPointerException se dá toda vez que vc tenta utilizar um objeto que não foi instanciado, de modo pratico vc esqueceu de dar new em alguma coisa na sua classe de conexao.

Posta o codigo da Conexao.java para podermos te ajudar melhor. Conforme o @Jonathan_Medeiros apontou, essa linha dai é onde o problema esta estourando.

Abraços
Max

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;

/**
 *
 * @author VIVI&FERNANDO
 */
public class Conexao {

    private boolean status = false;
    private String mensagem = "";   //variavel que vai informar o status da conexao
    private Connection con = null;  //variavel para conexao
    private Statement statement;
    private ResultSet resultSet;


    private String servidor = "jdbc:mysql://localhost:3306/db-vendasbl";
    private String nomeDoBanco = "db-vendasbl";
    private String usuario = "root";
    private String senha = "";
    
    public Conexao(){}
    
    public Conexao(String pServidor, String pNomeDoBanco, String pUsuario, String pSenha){
        this.servidor = pServidor;
        this.nomeDoBanco = pNomeDoBanco;
        this.usuario = pUsuario;
        this.senha = pSenha;
    }

    /**
     * Abre uma conexao com o banco
     * @return Connection
     */
    public Connection conectar(){
        try {
            //Driver do MySQL
            Class.forName("com.mysql.jdbc.Driver");

            //local do banco, nome do banco, usuario e senha
            String url = "jdbc:mysql://" + servidor + "/" + nomeDoBanco;
            this.setCon((Connection) DriverManager.getConnection(url, usuario, senha));

            //se ocorrer tudo bem, ou seja, se conectar a linha a segui é executada
            this.status = true;
        }
        catch(ClassNotFoundException |SQLException e){
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return this.getCon();
    }

    /**
     * Executa consultas SQL
     * @param pSQL
     * @return int
     */
    public boolean executarSQL(String pSQL){
        try {
          
            //createStatement de con para criar o Statement
            this.setStatement(getCon().createStatement()); //  essa é linha 75
            // Definido o Statement, executamos a query no banco de dados
            this.setResultSet(getStatement().executeQuery(pSQL));
            
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            ex.printStackTrace();
            return false;
        }
        return true;
    }
    
    public boolean executarUpdateDeleteSQL(String pSQL){
        try {
            
            //createStatement de con para criar o Statement
            this.setStatement(getCon().createStatement());

            // Definido o Statement, executamos a query no banco de dados
            getStatement().executeUpdate(pSQL);
            
        } catch (SQLException ex) {
            ex.printStackTrace();
            return false;
        }
        return true;
    }
    
    /**
     * Executa insert SQL
     * @param pSQL
     * @return boolean
     */
    public int insertSQL(String pSQL){
        int status = 0;
        try {
            //createStatement de con para criar o Statement
            this.setStatement(getCon().createStatement());

            // Definido o Statement, executamos a query no banco de dados
            this.getStatement().executeUpdate(pSQL);
            
            //consulta o ultimo id inserido
            this.setResultSet(this.getStatement().executeQuery("SELECT last_insert_id();"));
            
            //recupera o ultimo id inserido
            while(this.resultSet.next()){
                status = this.resultSet.getInt(1);
            }
            
            //retorna o ultimo id inserido
            return status;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return status;
        }
    }

    /**
     * encerra a conexão corrente
     * @return boolean
     */
    public boolean fecharConexao(){
       try {
           if((this.getResultSet() != null) && (this.statement != null)){
               this.getResultSet().close();
               this.statement.close();
           }
           this.getCon().close();
           return true;
       } catch(SQLException e) {
           JOptionPane.showMessageDialog(null, e.getMessage());
       }
       return false;
    }

    /**
     * @return the status
     */
    public boolean isStatus() {
        return this.status;
    }

    /**
     * @return the mensagem
     */
    public String getMensagem() {
        return mensagem;
    }

    /**
     * @return the statement
     */
    public Statement getStatement() {
        return statement;
    }

    /**
     * @return the resultSet
     */
    public ResultSet getResultSet() {
        return resultSet;
    }

    /**
     * @param mensagem the mensagem to set
     */
    public void setMensagem(String mensagem) {
        this.mensagem = mensagem;
    }

    /**
     * @return the con
     */
    public Connection getCon() {
        return con;
    }

    /**
     * @param con the con to set
     */
    public void setCon(Connection con) {
        this.con = con;
    }

    /**
     * @param statement the statement to set
     */
    public void setStatement(Statement statement) {
        this.statement = statement;
    }

    /**
     * @param resultSet the resultSet to set
     */
    public void setResultSet(ResultSet resultSet) {
        this.resultSet = resultSet;
    }

    /**
     * @return the servidor
     */
    public String getServidor() {
        return servidor;
    }

    /**
     * @param servidor the servidor to set
     */
    public void setServidor(String servidor) {
        this.servidor = servidor;
    }

    /**
     * @return the nomeDoBanco
     */
    public String getNomeDoBanco() {
        return nomeDoBanco;
    }

    /**
     * @param nomeDoBanco the nomeDoBanco to set
     */
    public void setNomeDoBanco(String nomeDoBanco) {
        this.nomeDoBanco = nomeDoBanco;
    }

    /**
     * @return the usuario
     */
    public String getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

}

Sua classe de conexão não está iniciando a conexão, você remonta a URL o que causa um erro.

Veja, aqui você monta a URL completa na declaração da variável servidor.

Aqui você cria de novo a URL na declaração da variável URL concatenando com a variável servidor que já possui a URL de conexão completa.

Compreendeu o problema?

boa noite Jonathan.
compreendi sim. fiz essa alteraçao coloquei da seguinte forma >
String url = servidor; isso é correto?
mas mesmo assim continua dando NullPointerException
ou seja minha classe conexao nao conecta com banco.

boa noite Max .
public class Conexao {
private boolean status = false;
private String mensagem = “”; //variavel que vai informar o status da conexao
private Connection con = null; //variavel para conexao
private Statement statement;
private ResultSet resultSet;

private String servidor = "jdbc:mysql://localhost:3306/db-vendasbl";
private String nomeDoBanco = "db-vendasbl";
private String usuario = "root";
private String senha = "";

public Conexao(){}

public Conexao(String pServidor, String pNomeDoBanco, String pUsuario, String pSenha){
    this.servidor = pServidor;
    this.nomeDoBanco = pNomeDoBanco;
    this.usuario = pUsuario;
    this.senha = pSenha;
}

/**
 * Abre uma conexao com o banco
 * @return Connection
 */
public Connection conectar(){
    try {
        //Driver do MySQL
        Class.forName("com.mysql.jdbc.Driver");

        //local do banco, nome do banco, usuario e senha
        String url = servidor;
        this.setCon((Connection) DriverManager.getConnection(url, usuario, senha));

        //se ocorrer tudo bem, ou seja, se conectar a linha a segui é executada
        this.status = true;
    }
    catch(ClassNotFoundException |SQLException e){
        JOptionPane.showMessageDialog(null, e.getMessage());
    }
    return this.getCon();
}

/**
 * Executa consultas SQL
 * @param pSQL
 * @return int
 */
public boolean executarSQL(String pSQL){
    try {
         //createStatement de con para criar o Statement
       getCon().createStatement();
        // Definido o Statement, executamos a query no banco de dados
        this.setResultSet(getStatement().executeQuery(pSQL));
        
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, ex.getMessage());
        ex.printStackTrace();
        return false;
    }
    return true;
}

public boolean executarUpdateDeleteSQL(String pSQL){
    try {
        
        //createStatement de con para criar o Statement
        this.setStatement(getCon().createStatement());

        // Definido o Statement, executamos a query no banco de dados
        getStatement().executeUpdate(pSQL);
        
    } catch (SQLException ex) {
        ex.printStackTrace();
        return false;
    }
    return true;
}

/**
 * Executa insert SQL
 * @param pSQL
 * @return boolean
 */
public int insertSQL(String pSQL){
    int status = 0;
    try {
        //createStatement de con para criar o Statement
        this.setStatement(getCon().createStatement()); // essa é a linha 75 onde ocorre a excessao

        // Definido o Statement, executamos a query no banco de dados
        this.getStatement().executeUpdate(pSQL);
        
        //consulta o ultimo id inserido
        this.setResultSet(this.getStatement().executeQuery("SELECT last_insert_id();"));
        
        //recupera o ultimo id inserido
        while(this.resultSet.next()){
            status = this.resultSet.getInt(1);
        }
        
        //retorna o ultimo id inserido
        return status;
    } catch (SQLException ex) {
        ex.printStackTrace();
        return status;
    }
}

/**
 * encerra a conexão corrente
 * @return boolean
 */
public boolean fecharConexao(){
   try {
       if((this.getResultSet() != null) && (this.statement != null)){
           this.getResultSet().close();
           this.statement.close();
  }
       this.getCon().close();
       return true;
   } catch(SQLException e) {
       JOptionPane.showMessageDialog(null, e.getMessage());
   }
   return false;
}

/**
 * @return the status
 */
public boolean isStatus() {
    return this.status;
}

/**
 * @return the mensagem
 */
public String getMensagem() {
    return mensagem;
}

/**
 * @return the statement
 */
public Statement getStatement() {
    return statement;
}

/**
 * @return the resultSet
 */
public ResultSet getResultSet() {
    return resultSet;
}

/**
 * @param mensagem the mensagem to set
 */
public void setMensagem(String mensagem) {
    this.mensagem = mensagem;
}

/**
 * @return the con
 */
public Connection getCon() {
    return con;
}

/**
 * @param con the con to set
 */
public void setCon(Connection con) {
    this.con = con;
}

/**
 * @param statement the statement to set
 */
public void setStatement(Statement statement) {
    this.statement = statement;
}

/**
 * @param resultSet the resultSet to set
 */
public void setResultSet(ResultSet resultSet) {
    this.resultSet = resultSet;
}

/**
 * @return the servidor
 */
public String getServidor() {
    return servidor;
}

/**
 * @param servidor the servidor to set
 */
public void setServidor(String servidor) {
    this.servidor = servidor;
}

/**
 * @return the nomeDoBanco
 */
public String getNomeDoBanco() {
    return nomeDoBanco;
}

/**
 * @param nomeDoBanco the nomeDoBanco to set
 */
public void setNomeDoBanco(String nomeDoBanco) {
    this.nomeDoBanco = nomeDoBanco;
}

/**
 * @return the usuario
 */
public String getUsuario() {
    return usuario;
}

/**
 * @param usuario the usuario to set
 */
public void setUsuario(String usuario) {
    this.usuario = usuario;
}

/**
 * @return the senha
 */
public String getSenha() {
    return senha;
}

/**
 * @param senha the senha to set
 */
public void setSenha(String senha) {
    this.senha = senha;
}

} vlw pela atençao.

Não que seja incorreto, mas é desnecessário!

Sobre o erro, o log continua apontando para a classe de conexão?
Pois simulei a conexão aqui com a sua classe e funcionou normalmente!

vlw Jonathan…

Boa Noite @Fernando_Souza2 uma pergunta, antes de vc chamar o metodo executarSQL ou insertSQL voce chama o conectar()? Pois o conectar() é que na verdade define um valor para o atributo con que ate o momento esta definido como null. Se vc simplesmente chama o getCon() conforme essas linha abaixo sem antes chamar o conectar()

e essa

Com certeza vc vai tomar esse erro de

Teria como vc postar a parte do seu codigo aonde voce chama esses metodos?( insertSQL e executarSQL)

Abraços
Max

boa noite Max… esse é o pedaço do codigo onde uso a classe conexao que ocorre erro>>
public ViewProduto(){
initComponents();
CarregarProduto();

}

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jPanel2 = new javax.swing.JPanel();
    jLabelCodigo = new javax.swing.JLabel();
    jTextFieldCodigo = new javax.swing.JTextField();
    jLabelNome = new javax.swing.JLabel();
    jTextFieldNome = new javax.swing.JTextField();
    jLabelEstoque = new javax.swing.JLabel();
    jTextFieldEstoque = new javax.swing.JTextField();
    jLabelValor = new javax.swing.JLabel();
    jTextFieldValor = new javax.swing.JTextField();
    jLabelPesquisar = new javax.swing.JLabel();
    jTextFieldPesquisar = new javax.swing.JTextField();
    jButtonPesquisar = new javax.swing.JButton();
    jScrollPane1 = new javax.swing.JScrollPane();
    jTableProduto = new javax.swing.JTable();
    jButtonCancelar = new javax.swing.JButton();
    jButtonAlterar = new javax.swing.JButton();
    jButtonNovo = new javax.swing.JButton();
    jButtonSalvar = new javax.swing.JButton();
    jButtonExcluir = new javax.swing.JButton();

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 831, Short.MAX_VALUE)
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 300, Short.MAX_VALUE)
    );

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jLabelCodigo.setText("Codigo:");

    jTextFieldCodigo.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jTextFieldCodigoActionPerformed(evt);
        }
    });

    jLabelNome.setText("Nome:");

    jLabelEstoque.setText("Estoque:");

    jLabelValor.setText("Valor:");

    jLabelPesquisar.setText("Pesquisar:");

    jButtonPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/Pesquisar.png"))); // NOI18N
    jButtonPesquisar.setText("Pesquisar");
    jButtonPesquisar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonPesquisarActionPerformed(evt);
        }
    });

    jTableProduto.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {

        },
        new String [] {
            "Codigo", "Nome", "Estoque", "Valor"
        }
    ) {
        boolean[] canEdit = new boolean [] {
            false, false, false, false
        };

        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit [columnIndex];
        }
    });
    jScrollPane1.setViewportView(jTableProduto);
    if (jTableProduto.getColumnModel().getColumnCount() > 0) {
        jTableProduto.getColumnModel().getColumn(1).setMinWidth(300);
        jTableProduto.getColumnModel().getColumn(1).setPreferredWidth(300);
    }

    jButtonCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/cancelar.png"))); // NOI18N
    jButtonCancelar.setText("Cancelar");
    jButtonCancelar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonCancelarActionPerformed(evt);
        }
    });

    jButtonAlterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/alterar.png"))); // NOI18N
    jButtonAlterar.setText("Alterar");

    jButtonNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/novo.png"))); // NOI18N
    jButtonNovo.setText("Novo");
    jButtonNovo.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonNovoActionPerformed(evt);
        }
    });

    jButtonSalvar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/salvar.png"))); // NOI18N
    jButtonSalvar.setText("Salvar");

    jButtonExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/delete.png"))); // NOI18N
    jButtonExcluir.setText("Excluir");

    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
    jPanel2.setLayout(jPanel2Layout);
    jPanel2Layout.setHorizontalGroup(
        jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel2Layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup()
                    .addComponent(jScrollPane1)
                    .addContainerGap())
                .addGroup(jPanel2Layout.createSequentialGroup()
                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel2Layout.createSequentialGroup()
                            .addComponent(jButtonCancelar, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jButtonExcluir)
                            .addGap(18, 18, 18)
                            .addComponent(jButtonAlterar)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jButtonNovo)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jButtonSalvar))
                        .addGroup(jPanel2Layout.createSequentialGroup()
                            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel2Layout.createSequentialGroup()
                                    .addComponent(jLabelCodigo)
                                    .addGap(43, 43, 43)
                                    .addComponent(jLabelNome))
                                .addGroup(jPanel2Layout.createSequentialGroup()
                                    .addComponent(jTextFieldCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE, 481, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(jPanel2Layout.createSequentialGroup()
                                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabelEstoque)
                                        .addComponent(jTextFieldEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGap(23, 23, 23)
                                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabelValor)
                                        .addComponent(jTextFieldValor, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGroup(jPanel2Layout.createSequentialGroup()
                                    .addComponent(jLabelPesquisar)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jTextFieldPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 287, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jButtonPesquisar)))
                            .addGap(0, 0, Short.MAX_VALUE)))
                    .addGap(0, 10, Short.MAX_VALUE))))
    );
    jPanel2Layout.setVerticalGroup(
        jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel2Layout.createSequentialGroup()
            .addGap(24, 24, 24)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabelCodigo)
                .addComponent(jLabelNome))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                .addComponent(jTextFieldCodigo)
                .addComponent(jTextFieldNome))
            .addGap(18, 18, 18)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabelEstoque)
                .addComponent(jLabelValor))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jTextFieldEstoque, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jTextFieldValor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabelPesquisar)
                .addComponent(jTextFieldPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jButtonPesquisar))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(4, 4, 4)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jButtonCancelar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButtonAlterar)
                    .addComponent(jButtonNovo)
                    .addComponent(jButtonSalvar)
                    .addComponent(jButtonExcluir)))
            .addContainerGap(36, Short.MAX_VALUE))
    );

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    );

    pack();
}// </editor-fold>                        

private void jTextFieldCodigoActionPerformed(java.awt.event.ActionEvent evt) {                                                 
    // TODO add your handling code here:
}                                                

private void jButtonPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                                 
    // TODO add your handling code here:
}                                                

private void jButtonNovoActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
}                                           

private void jButtonCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                                
    // TODO add your handling code here:
}                                               

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(ViewProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(ViewProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(ViewProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(ViewProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new ViewProduto().setVisible(true);
        }
    });
}

/**
 * esse metodo preenche a tabela de produtos com os produtos cadastro no
 * banco
 */
private void CarregarProduto() {  // esse metodo  é o que chamo e ocorre o erro...
    listaModelProduto = controllerProduto.retornarListaProdutoController();
    DefaultTableModel modelo = (DefaultTableModel) jTableProduto.getModel();
    modelo.setNumRows(0);
    // inserir produtos na tabela
    int cont = listaModelProduto.size(); // o [cont] ira contar quantos produtos tem lista
    for (int i = 0; i < cont; i++) { // o for ira preencher a lista
        modelo.addRow(new Object[]{
            listaModelProduto.get(i).getIdProduto(),
            listaModelProduto.get(i).getProNome(),
            listaModelProduto.get(i).getProEstoque(),
            listaModelProduto.get(i).getProValor()
        });
    }

}

Vc não tá iniciando a conexão.

Seria algo como:

private void CarregarProduto() {  // esse metodo  é o que chamo e ocorre o erro...
ClasseConexao conecta = new ClasseConexao();
conecta.conectar();
    listaModelProduto = controllerProduto.retornarListaProdutoController();
    DefaultTableModel modelo = (DefaultTableModel) jTableProduto.getModel();
    modelo.setNumRows(0);
    // inserir produtos na tabela
    int cont = listaModelProduto.size(); // o [cont] ira contar quantos produtos tem lista
    for (int i = 0; i < cont; i++) { // o for ira preencher a lista
        modelo.addRow(new Object[]{
            listaModelProduto.get(i).getIdProduto(),
            listaModelProduto.get(i).getProNome(),
            listaModelProduto.get(i).getProEstoque(),
            listaModelProduto.get(i).getProValor()
        });
   conecta.desconectar();
    }

boa noite Abner_Rodrigues .
isso é vdd, mais quando inicio apenas a classe conexao ela nao retorna os produtos que insiro
no bd esse metodo carregarProduto(); deveria acessar e retorna produto na tabela de minha interface… ou nao?

É a mesma coisa de vc tentar entrar na internet sem ter internet. Primeiro vc precisa contratar um plano e depois vai usando.

No código, vc referencia a classe de conexão, pode referenciar como global

ClasseConexao conecta = new ClasseConexao();
public void carregar(){
conecta.conectar();
//Método
conecta.desconectar();
}