Estou tentando fazer um insert com o executaSql e esta dando este erro, sou iniciante e não consegui resolver o problema, se alguem poder me dar uma ajudinha eu vou ser muito agradecido.
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at conexoes.Conecta_Banco.executaSql(Conecta_Banco.java:73)
at Autenticacao.ViewiPrincipal.logdeAcesso(ViewiPrincipal.java:879)
at Autenticacao.ViewiPrincipal.(ViewiPrincipal.java:66)
at Autenticacao.ViewLogin.autenticar(ViewLogin.java:210)
at Autenticacao.ViewLogin.bEntrarActionPerformed(ViewLogin.java:195)
at Autenticacao.ViewLogin.access$100(ViewLogin.java:21)
Poste seu código para ajudar a identificar melhor o erro.
Mas pelo o que está retornando o erro.
A sua conexão com o banco de dados está retornando null, provavelmente você não está passando nada para a conexão.
Não esqueça de selecionar o fonte e clicar no botão </> do fórum.
É impossível ler o código da forma que está.
/**
*
* @author André Gouveia
*/
public class Conecta_Banco {
public Statement stmt;
public ResultSet rs;
public Statement statement;
public ResultSet resultSet;
private String driver = "org.postgresql.Driver";
private String caminho = "jdbc:postgresql://localhost:5432/ibscDB"; //"jdbc:postgresql://10.0.0.120:5432/escola"
private String usuario = "postgres";
private String senha = "17072010";
public Connection conn;
//iniciando os objetos
public Conecta_Banco() {
this.rs = rs;
this.stmt = stmt;
this.conn = conn;
}
//abre conexão com o banco
public void abreConexao() {
try {
System.setProperty("jdbc.Drivers", driver);
setConn(DriverManager.getConnection(caminho, usuario, senha));
//JOptionPane.showMessageDialog(null, "Conectado com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao conectar!" + ex.getMessage());
//Logger.getLogger(ConexaoSCI.class.getName()).log(Level.SEVERE, null, ex);
}
}
//fecha conexão com o banco
public void fechaConexao() {
try {
getConn().close();
//JOptionPane.showMessageDialog(null,"banco fechado");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Não foi possivel " + "fechar o banco de dados: " + ex.getMessage());
}
}
public boolean executarSQL(String pSQL) {
try {
//createStatement de con para criar o Statement
this.setStatement(getConn().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 void executaSql(String sql) {
try {
stmt = conn.createStatement(rs.TYPE_SCROLL_SENSITIVE, rs.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
//JOptionPane.showMessageDialog(null,"Não foi possível "+ "executar o comando sql,"+ex+", o sql passado foi "+sql);
}
}
public int insertSQL(String pSQL) {
int status = 0;
try {
//createStatement de con para criar o Statement
this.setStatement(conn.createStatement());
// Definido o Statement, executamos a query no banco de dados
this.statement.executeUpdate(pSQL);
//consulta o ultimo id inserido
this.setResultSet(this.getStatement().executeQuery("SELECT MAX(id_disciplina) FROM tb_disciplina"));
//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;
}
}
/**
* @return the stmt
*/
public Statement getStmt() {
return stmt;
}
/**
* @param stmt the stmt to set
*/
public void setStmt(Statement stmt) {
this.stmt = stmt;
}
/**
* @return the rs
*/
public ResultSet getRs() {
return rs;
}
/**
* @param rs the rs to set
*/
public void setRs(ResultSet rs) {
this.rs = rs;
}
/**
* @return the conn
*/
public Connection getConn() {
return conn;
}
/**
* @param conn the conn to set
*/
public void setConn(Connection conn) {
this.conn = conn;
}
/**
* @return the statement
*/
public Statement getStatement() {
return statement;
}
/**
* @param statement the statement to set
*/
public void setStatement(Statement statement) {
this.statement = statement;
}
/**
* @return the resultSet
*/
public ResultSet getResultSet() {
return resultSet;
}
/**
* @param resultSet the resultSet to set
*/
public void setResultSet(ResultSet resultSet) {
this.resultSet = resultSet;
}
}