Problemas com executeUpdate

Bom dia pessoal, sou novato tbm na area de desenvolvimento em java… Estou com um problema que já não sei como solucionar.
Utilizo a IDE netbeans, onde separei meu código da seguinte forma:
package classes;
import java.sql.;
import javax.swing.
;
/**
*

  • @author Bruno
    */
    public class ConexaoBD {
    private String driver = “org.postgresql.Driver”;
    private String url = “jdbc:postgresql://localhost:5432/postgres”;
    private String usuario = “postgres”;
    private String senha = “xatm092”;
    private Connection conexao;
    public Statement stmt;
    public ResultSet rs;
    //conexao = null;

/** Creates a new instance of ConexaoBD */
public ConexaoBD() {
try {

Class.forName(driver);
conexao = DriverManager.getConnection(url, usuario, senha);
JOptionPane.showMessageDialog(null,“Conexão Realizada.”);
}
catch(ClassNotFoundException Driver){
// retorna se houve erro na class.forName
JOptionPane.showMessageDialog(null,"Driver não localizado: "+Driver);

}
catch(SQLException erro){
// retorna se houve erro no na conexao sql
JOptionPane.showMessageDialog(null,"Deu erro na conexão "+"com a fonte de dados: "+erro);

} catch(Exception ex)
{
JOptionPane.showMessageDialog(null,""+ex);

}
}
public void conecta(){

}

public void desconecta(){
try{
conexao.close();
JOptionPane.showMessageDialog(null,“conexão fechada”);

}
catch(SQLException erro){

JOptionPane.showMessageDialog(null,"Conexao não pode ser encerrada, erro: "+erro);
}

}
public void executeSQL(String sql)
{
// cria se uma statement da conexao onde é utilizada para executar a query retornando os valores para o objeto rs.
try
{
stmt = conexao.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,“Não foi possível executar o comando sql.”+erro);
}

}

}

Está seria a minha classe de conexão com o banco e o código a seguir seria o do evento de inserção dos dados no banco.

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

ConexaoBD con = new ConexaoBD();
//con.conecta();
try{
con.stmt.executeUpdate(“insert into usuario (nome, sobrenome, telefone, cargo, senha)” +
" values (‘ricardo’, ‘vieira’, 38326720, ‘conferente’, ‘ric’)");
JOptionPane.showMessageDialog(null,“Dados inseridos com sucesso”);
}
catch(SQLException erro){
JOptionPane.showMessageDialog(null,“erro no update”+erro);
}

con.desconecta();
}

Este código está me retornando o seguinte erro:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at Interfaces.Cad_Usuarios.but_Usu_SairActionPerformed(Cad_Usuarios.java:185)
at Interfaces.Cad_Usuarios.access$100(Cad_Usuarios.java:17)
at Interfaces.Cad_Usuarios$2.actionPerformed(Cad_Usuarios.java:87)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:231
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:603
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:205
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:16
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Já procurei saber sobre este erro, pois este somente acontece quando estamos passando um objeto nulo à um metódo, creio eu então que esta instrução de sql esteja errada, porem este comando sql foi executado no banco, e assim sendo resultou em sucesso.

Agradeço a voçes a atenção…

o atributo stmt está nulo, ou seja, não foi instanciado em nenhum lugar.

outra coisa: o método conecta() está vazio. o que ele deveria fazer? instanciar o atributo stmt talvez?

Este método conecta era utilizado para conectar primeiramente, porém estava com problema também, passei todo o meu código aonde é efetuada a conexão para o construtor.
E no meu código do evento do botão eu criei um objeto da minha classe conexaoBD, onde passei a sql para minha stmt?
creio eu que esta não estaria nula. Me corrija se estiver errado. Como eu poderia solucionar este problema?

é aqui que a NullPointerException acontece:

con.stmt.executeUpdate("insert into usuario (nome, sobrenome, telefone, cargo, senha)" + " values ('ricardo', 'vieira', 38326720, 'conferente', 'ric')");
aqui você faz referência a um atributo público da classe ConexaoBD que não foi instanciado nela ou, ao que parece, na classe que possui o método but_Usu_SairActionPerformed(java.awt.event.ActionEvent evt).

tente o seguinte:

con.stmt = con.createStatment(); con.stmt.executeUpdate("insert into usuario (nome, sobrenome, telefone, cargo, senha)" + " values ('ricardo', 'vieira', 38326720, 'conferente', 'ric')"); con.stmt.close();
ou então utilizar aquele método executeSQL(String sql) da classe ConexaoBD.

Vlw, foi na mosca essa…
Brigadão