Erro

Bom dia, estou tentando salvar dados em minha tabela e está me dando o seguinte erro:

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at modeloDao.DaoAluno.Salvar(DaoAluno.java:29)
at visao.FormularioAluno.jButtonSalvarActionPerformed(FormularioAluno.java:337)
at visao.FormularioAluno.access$600(FormularioAluno.java:17)
at visao.FormularioAluno$7.actionPerformed(FormularioAluno.java:244)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
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:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
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)

Meu conexao:

package modeloConection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class ConexaoBD {

public Statement stm;
public ResultSet rs;
private final String DRIVER = "com.mysql.jdbc.Driver";
private final String URL = "jdbc:mysql://179.188.16.208:3306/mundoideal123";
private final String USER = "mundoideal123";
private final String PASS = "******";
public Connection con;

    

public Connection conexao(){

try {
Class.forName(“com.mysql.jdbc.Driver”);
return DriverManager.getConnection(URL, USER, PASS);

} catch (SQLException | ClassNotFoundException ex) {

JOptionPane.showMessageDialog(null, ex);
}
return null;
}

public void executaSql(String sql){
    try {
        stm = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
        rs = stm.executeQuery(sql);
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro:\n"+ex.getMessage());
    }
}

public void desconectar(){
    try {
        con.close();
        //JOptionPane.showMessageDialog(null, "Desconectado com sucesso!!");
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao fechar conexão com bando de dados:\n"+ex.getMessage());
    }
}

}

meu DAO:

package modeloDao;

import modeloConection.ConexaoBD;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import modeloBeans.BeansAluno;

/**
*

  • @author Gui
    */
    public class DaoAluno {

    ConexaoBD conex = new ConexaoBD();
    BeansAluno mod = new BeansAluno();

    public void Salvar(BeansAluno mod){
    conex.conexao();
    try {
    PreparedStatement pst;
    pst = conex.con.prepareStatement(“insert into alunos(nome_aluno,nome_pai,nome_mae,telefone_aluno1,telefone_aluno2,serie,nascimento,endereco,remedios) values(?,?,?,?,?,?,?,?,?)”);
    pst.setString(1,mod.getNome());
    pst.setString(2,mod.getNomePai());
    pst.setString(3,mod.getNomeMae());
    pst.setInt(4, mod.getTelefone1());
    pst.setInt(5, mod.getTelefone2());
    pst.setString(6, mod.getSerie());
    pst.setString(7, mod.getNascimento());
    pst.setString(8, mod.getRua());
    pst.setString(9, mod.getRemedio());
    pst.execute();

        JOptionPane.showMessageDialog(null, "Dados Inseridos com sucesso");
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao inserir dados"+ex);
    }
    
    
    conex.desconectar();
}

public BeansAluno buscaAluno(BeansAluno mod){
    conex.conexao();
    conex.executaSql("Select *from alunos WHERE nome_aluno like'%"+mod.getPesquisa()+"%'");
    try {
        conex.rs.first();
        mod.setCodigo(conex.rs.getInt("cod_aluno"));
        mod.setNome(conex.rs.getString("nome_aluno"));
        mod.setNomeMae(conex.rs.getString("nome_pai"));
        mod.setNomePai(conex.rs.getString("nome_mae"));
        mod.setTelefone1(conex.rs.getInt("telefone_aluno1"));
        mod.setTelefone2(conex.rs.getInt("telefone_aluno2"));
        mod.setSerie(conex.rs.getString("serie"));
        mod.setRua(conex.rs.getString("endereco"));
        mod.setRemedio(conex.rs.getString("remedios"));
        mod.setNascimento(conex.rs.getString("nascimento"));
        
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao buscar aluno:\n"+ex);
    }
    
    
    conex.desconectar();
    return mod;
    
}

}

Alguém pode me ajudar?

Dao ta nulo = NullPointerException

Dao ta nulo = NullPointerException

eu não sei muito de java, poderia me apontar onde está o problema e como posso resolver?

Na linha 29 da sua classe esta usando um objeto que não foi criado…modeloDao.DaoAluno.Salvar(DaoAluno.java:29)…crie o objeto!

ja verifiquei tudo, e não vi nenhum problema na linha 29…