Insert em mdb

1 resposta
androidelp

Boa noite pessoal,

Estou a horas tentando efetuar uma inserção em um banco access porém não sei o que está acontecendo de errado.
Criei um banco chamado bancojava.mdb e que possui uma tabela chamada registro.
No código existe duas classes uma conexao para efetuar conexao, inserir conteúdo e finalizar conexao, e outra que é o formulário.
Terminei o código e o java não me retornou erro algum, porém quando executei a aplicação e inseri a informações nos campos dos formulários e cliquei no botão, o código não fez nada, e na saida do compilador me retornou fárias respostas em vermelho que não sei se são erros ou alertas.

estou enviando o codigo e o erro segue.

erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at gerenciadortarefas.conexao.inserir(conexao.java:54)
	at gerenciadortarefas.formulario.jButton1ActionPerformed(formulario.java:116)
	at gerenciadortarefas.formulario.access$000(formulario.java:17)
	at gerenciadortarefas.formulario$1.actionPerformed(formulario.java:59)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	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:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

código conexao

package gerenciadortarefas;

import java.sql.*;
import javax.swing.JOptionPane;

/**
 *
 * @author Black Phoenix
 */
public class conexao {
    
    Connection conexao;
    Statement instrucao;
    
    public void conectar(){
    
        try{
            
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            
            conexao = DriverManager.getConnection("Jdbc:Odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/xampp/htdocs/bancojava/bancojava.mdb"); 
        
        }catch(Exception e){
        
        System.out.println("ERRO na Conexao com o Banco de Dados"+e.toString());     
        
        }
    
    }
    
    public void desconectar(){
    
        try{
        conexao.close();
        
        }catch(SQLException sqle){
            
            JOptionPane.showMessageDialog(null, "Problema ao desconectar!");
        System.exit(0);
        
        }
        
    
    }
    
    public void inserir(String Cliente, int total_horas, int horas_usadas){
    
      try
{
   instrucao.execute("insert into registro (Cliente, obs, total_horas, horas_usadas) Values('"+Cliente+"', 'teste info', "+total_horas+", "+horas_usadas+" )");
   JOptionPane.showMessageDialog(null, "Mensagem inserida com sucesso!");
   
}catch(SQLException e){ 
   JOptionPane.showMessageDialog(null,"" + e.getMessage(),"Erro",0);
   
    }
      
    }
    

    
}

código formulário

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// Inseir o código aqui
    
    conexao cn = new conexao();
    
    cn.conectar();
    
    cn.inserir(textField1.getText(), Integer.parseInt(textField2.getText()), Integer.parseInt(textField3.getText()));
    
    cn.desconectar();
    
}

1 Resposta

nel

Aposto que a variável instrucao está nula. Ao menos, não vi você inicializando ela. NullPointerException indica que uma referência nula está tentando tomar uma ação. Por exemplo:

String s = null; s.trim();

Vai gerar exatamente o mesmo erro que o seu.

Criado 30 de maio de 2012
Ultima resposta 31 de mai. de 2012
Respostas 1
Participantes 2