Problema ao executar SQL

11 respostas
Luciano_Lopes

Pessoal,ainda sou novo em java,estou fazendo uma pequena aplicação de cadastros,criei um frame para clientes e as classes para conexão mas quando tento abri-lo ele da esse erro:

run:

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at dados.Conexao.ExecutarSQL(Conexao.java:52)

at cadastros.JClientes.(JClientes.java:26)

at cadastros.JClientes$2.run(JClientes.java:371)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

CONSTRUÇÃO PARADA (tempo total: 6 segundos)

O sql que executei é simples (“select * from clientes”),ja tinah feito isso em um outro sistema e compilou tranquilo,mas agora com esse ta dando problema,ja verifique as classes de conexão e estão sem nenhum erro,alguem pode me ajudar?Desde ja agradeço,vlw

11 Respostas

JavaMania

Provavelmente vc está passando algum valor null para query.

Qual a query q vc esta executando??

:slight_smile:

Luciano_Lopes

Select * from Clientes,mas na ta funcionando,toda vez que abro o frame da aquele erro ai de cima :frowning:

JavaMania

Talvez o problema esteja na conexão com o banco.

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at dados.Conexao.ExecutarSQL(Conexao.java:52)

Na query aparentemente não me parece ter erro, a não ser que o nome da tabela esteja errado.

Luciano_Lopes

Mas o código que estou usando para conexão ja usei em outros exercicios e funcionou tranquilo,esse problema foi de uma hora para outra,foi muito estranho mesmo.

JavaMania

Posta o codigo aqui por favor.

Vc add na aplicação o arquivo .jar do banco que esta usando?

Luciano_Lopes

Esse ai é a classe de conexão:

package dados;

import javax.swing.<em>;

import java.sql.</em>;

/**
*

  • @author Administrador
    
    */
    
    public class Conexao {
    
    final private String Driver=sun.jdbc.odbc.JdbcOdbcDriver;
    
    final private String Url=jdbc:odbc:Dados;
    
    final private String Login="";
    
    final private String Senha="";
    
    private Connection ConDB;
    
    public ResultSet RsDB;
    
    public Statement StDB;
    
    public boolean Conectar(){
    
    boolean Conectou = true;
    
    try{
    
    Class.forName(Driver);
    
    DriverManager.getConnection(Url,Login,Senha);
    
    }
     catch(SQLException ErroSqlException){
     JOptionPane.showMessageDialog(null,"Erro ao conectar!"+ErroSqlException);
     Conectou=false;
     }
     catch(ClassNotFoundException ErroClassNotFound){
         JOptionPane.showMessageDialog(null,"Erro ao conectar!"+ErroClassNotFound);
         Conectou=false;
     }
    
    return Conectou;
    
    }
    
    public void Desconectar(){
    
    boolean Desconectou=true;
    
    try{
    
    ConDB.close();
    
    }
    
    catch(SQLException ErroSQLException){
    
    JOptionPane.showMessageDialog(null,“Erro ao desconectar!+ErroSQLException);
    
    Desconectou=false;
    
    }
    
    }
    
    public void ExecutarSQL(String CodigoSQL){
    
    try{
    
    StDB=ConDB.createStatement();
    
    RsDB=StDB.executeQuery(CodigoSQL);
    
    }
    
    catch(SQLException ErroSQLException){
    
    JOptionPane.showMessageDialog(null,“Erro ao executar o SQL!+ErroSQLException);
    
    }
    
    }
    
    }
    
Luciano_Lopes

up

Vinny

A Proxima vez que for postar um codigo posta com o TAG CODE

Então provavelvente o ERRO ta no seu URL
Pq pelo que eu estou vendo vc não esta passando o caminho do banco de dados
E não ta informanado o Driver do banco que vc esta usando

// deve se passar o nome do drivers do seu BD e o caminho onde o banco esta
final private String Url="jdbc:odbcdados"; 
try{
Class.forName(Driver);
DriverManager.getConnection(Url,Login,Senha);

}
catch(SQLException ErroSqlException){
JOptionPane.showMessageDialog(null,"Erro ao conectar!"+ErroSqlException);
Conectou=false;
}

Um exeplo de como se conectar ao banco é o seguinte
aki seria uma conexão usando o fireBird

public Conexao(String banco)
    {   try
        {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            // Estou informando o driver do banco que eu estou usando e o caminho do meu banco de dados
           // o Tipo de conexão que estou usando neste exemplo é uma conexão LOCAL.
            String url = "jdbc:firebirdsql://localhost/"+"C:\BANCO.FDB";
             //Informo o Login e Senha do FireBird e faço a conexao
            connect = DriverManager.getConnection( url, "SYSDBA", "masterkey" );
        }
        catch ( ClassNotFoundException cnfex )
        { erro="Falha ao ler o driver JDBC\n"+cnfex.toString(); }
        catch ( SQLException sqlex )
        { erro="Impossível conectar com a base de dados\n"+sqlex.toString(); }
        catch ( Exception ex )
        { erro="Outro erro\n"+ex.toString(); }
    }

Espero que ajude
Qualquer coisa é so postar aqui!

Luciano_Lopes

Eu não passei o caminho do banco porque ele ja ta configurado nas “Ferramentas administrativas” no “Painel de controle”
Ta mui :(to estranho,esse código tava funcionando direito,de uma hora para outra aparece esse problema :frowning:

Vinny

Hãn como assim?

Da uma lida nesse artigo ai da Introdução de como funciona o JDBC

http://www.guj.com.br/article.show.logic?id=7

Luciano_Lopes

Pessoal,problema resolvido!!! :smiley:

Eu tinha colocado:

DriverManager.getConnection(Url,Login,Senha);

Era para ser assim:

Conexao = DriverManager.getConnection(Url,Login,Senha);

Erro de iniciante :oops:

Vlw galera pela ajuda que me deram,abraços.

Criado 28 de junho de 2009
Ultima resposta 28 de jun. de 2009
Respostas 11
Participantes 3