Olá pessoal. Estou tendo um problema quando quero inserir um registro no banco Access de uma aplicação JAVA. Consigo preencher comboBox com dados vindos do banco e na msm pagina quando tento inserir me dah um erro que segue abaixo:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at cadastros.equipamento.cadastrar(equipamento.java:67)
at formularios.cadastrarHardware.buttonCadastrarActionPerformed(cadastrarHardware.java:370)
at formularios.cadastrarHardware.access$300(cadastrarHardware.java:23)
at formularios.cadastrarHardware$4.actionPerformed(cadastrarHardware.java:161)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
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:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
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:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
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:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
segue abaixo o codigo da classe q tem o metodo de inserir
package cadastros;
import java.sql.SQLException;
import javax.swing.*;
import utilitarios.conexao;
/**
*
* @author JUNIOR
*/
public class equipamento
{
private String numSerie;
private String numPatrimonial;
private String numNotaFiscal;
private String status;
private String observacoes;
conexao conexaoEquipamento=new conexao();
public equipamento ()
{
}
public void setNumSerie(String numSerie)
{
this.numSerie=numSerie;
}
public void setNumPatrimonial(String numPatrimonial)
{
this.numPatrimonial=numPatrimonial;
}
public void setNumNotaFiscal(String numNotaFiscal)
{
this.numNotaFiscal=numNotaFiscal;
}
public void setStatus (String status)
{
this.status=status;
}
public void setObservacoes (String observacoes)
{
this.observacoes=observacoes;
}
public String getNumSerie ()
{
return numSerie;
}
public String getNumPatrimonial()
{
return numPatrimonial;
}
public String getStatus ()
{
return status;
}
public String getObservacoes()
{
return observacoes;
}
public void cadastrar()
{
try
{
conexao conexEquipamento=new conexao();
String sqlInsert="Insert into equipamento (numeroSerie,numeroPatrimonial,status,observacoes) " +
"values ('"+numSerie+"','"+numPatrimonial+"','"+status+"','"+observacoes+"')";
conexEquipamento.statement.execute(sqlInsert);
JOptionPane.showMessageDialog(null, "Gravação realizada com sucesso");
}catch (SQLException erro)
{
JOptionPane.showMessageDialog(null, "O registro não pode ser salvo \n"+ erro);
}
}
public void alterar()
{
try
{
String sqlUpdate="update equipamento set numSerie='"+numSerie+"',numPatrimonial='"+numPatrimonial+
"',status='"+status+"',observacoes='"+observacoes+"' where numSerie='"+numSerie+"'";
conexaoEquipamento.statement.executeUpdate(sqlUpdate);
}catch (SQLException erro)
{
JOptionPane.showMessageDialog(null, "O registro não pode ser apagado /n"+ erro);
}
}
public void excluir()
{
try
{
String sqlDelete="delete from equipamento where numSerie='"+numSerie+"'";
conexaoEquipamento.statement.executeUpdate(sqlDelete);
}catch (SQLException erro)
{
JOptionPane.showMessageDialog(null, "O registro não pode ser apagado /n"+ erro);
}
}
public void buscar()
{
}
}
e abaixo o codigo da classe de conexão
package utilitarios;
import java.sql.*;
import javax.swing.*;
/**
*
* @author JUNIOR
*/
public class conexao
{
//final usado para definir a constante. Não poderá ser alterada
final private String driver="sun.jdbc.odbc.JdbcOdbcDriver";
final private String url="jdbc:odbc:cadhard";//referencia ao q foi criado no painel de controles
final private String usuario="";
final private String senha="";
private Connection conexao;
public Statement statement;//abre caminho ateh o BD
public ResultSet resultset;//armazena o resultado do sql
public boolean conecta()
{
boolean result=true;
try
{
Class.forName(driver);
conexao=DriverManager.getConnection(url, usuario,senha);
JOptionPane.showMessageDialog(null,"conectou");
}catch (ClassNotFoundException Driver)
{
JOptionPane.showMessageDialog(null,"Driver não Localizado: "+Driver);
result=false;
}
catch (SQLException Fonte)
{
JOptionPane.showMessageDialog(null, "Erro na Conexão com a fonte "+
"de dados: "+Fonte);
result=false;
}
return result;
}
public void desconecta()
{
boolean result=true;
try
{
conexao.close();
JOptionPane.showMessageDialog (null,"banco Fechado");
}
catch (SQLException erroSQL)
{
JOptionPane.showMessageDialog(null, "Não foi possível fechar o Banco "
+"de dados: "+erroSQL);
result=false;
}
}
public void executeSQL(String sql)
{
try
{
statement=conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,resultset.CONCUR_READ_ONLY);//abre caminho para BD
//os dois paramentro passado são para poder navegar pelo Statement, poid por padrão ele não permite
resultset=statement.executeQuery(sql);//variavel receberá o sql
}
catch (SQLException sqlex)
{
JOptionPane.showMessageDialog(null,"Não foi possível executar o "
+"comando SQL. "+ sqlex+"O SQL passado foi "+sql);
}
}
}
tenho um formulario que chama o metodo de cadastro da classe equipamento, “setando” os valores preenchidos no formulario
se alguem puder me ajudar agradeço…
att.
EDIT (Moderador) - Por favor, use as tags [ code ] (use o botãozinho “code” que está à direita do botãozinho “B” que você usou para ressaltar seu texto.