Pessoal boa noite,
sei que estou com um problema simples mas não consigo resolver, é o seguinte:
tenho 3 pacotes, no pacote utilitários tenha uma classe conexão, no pacote controle tenho a classe cadastro para inserir no banco e no pacote view tenha tenho a classe cargo que é o formulario, quando utilizo somente a classe cargo com a classe conexão consigo inserir no banco normalmente, mas quando eu modifico esta classe cargo enviando um parâmetro para a classe cadastro dá erro de NullPointer… na hora que vai executar “objConexao.statement.executeUpdate(sql);”, segue os códigos abaixo:
alguém pode ajudar?
classe Conexao:
[code]package utilitarios;
import java.sql.;
import javax.swing.;
public class conexao {
private Connection conexao;
public Statement statement;
public ResultSet resultset;
public boolean conecta() {
boolean result = true;
try {
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection("jdbc:mysql://localhost/controle estoque", "root", "root");
} catch (ClassNotFoundException Driver) {
JOptionPane.showMessageDialog(null, "Driver não encontrado: " + Driver);
result = false;
} catch (SQLException Fonte) {
JOptionPane.showMessageDialog(null, "Ocorreu um erro na conexão: " + Fonte);
result = false;
}
return result;
}
public void desconecta() {
boolean result = true;
try {
conexao.close();
} catch (SQLException fechaBanco) {
JOptionPane.showMessageDialog(null, "Conexão ainda aberta: " + fechaBanco);
result = false;
}
}
public void executeSQL(String sql) {
try {
statement = conexao.createStatement(
resultset.TYPE_SCROLL_SENSITIVE,resultset.CONCUR_READ_ONLY);//o parâmetro indica que o statement é navegável
resultset = statement.executeQuery(sql);
}catch(SQLException erroSQL){
JOptionPane.showMessageDialog(null, "Erro ao executar SQL: "+ sql+" - " + erroSQL );
}
}
}[/code]
classe Cadastro:
[code]package controle;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import utilitarios.conexao;
/**
*
*
*/
public class Cadastro {
conexao objConexao;
public Cadastro() {
objConexao = new conexao();
objConexao.conecta();
}
public void gravarDados(String sql) {
try {
//dá o erro aqui
objConexao.statement.executeUpdate(sql);
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Erro ao gravar dados " + erro);
}
}
}[/code]
método da classe Cargo sem alteração:
public void gravarCargo() {
//Cadastro cd = new Cadastro();
String sqlInsert = "insert into cargo (dep_cod,cargo_nome) values (" + getCodDepart() + ",'" + jtCargo.getText() + "')";
//cd.gravarDados(sqlInsert);
try {
objConexao.statement.executeUpdate(sqlInsert);
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Erro ao gravar dados " + erro);
}
jtCargo.setText("");
jtCargo.requestFocus();
preencheTable(sqlTable);
}
método da classe Cargo alterado: (dá erro de NullPointer…)
public void gravarCargo() {
Cadastro cd = new Cadastro();
String sqlInsert = "insert into cargo (dep_cod,cargo_nome) values (" + getCodDepart() + ",'" + jtCargo.getText() + "')";
cd.gravarDados(sqlInsert);
//try {
//objConexao.statement.executeUpdate(sqlInsert);
//} catch (SQLException erro) {
//JOptionPane.showMessageDialog(null, "Erro ao gravar dados " + erro);
//}
jtCargo.setText("");
jtCargo.requestFocus();
preencheTable(sqlTable);
}