Problema ao executar SQL

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

Provavelmente vc está passando algum valor null para query.

Qual a query q vc esta executando??

:slight_smile:

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

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.

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.

Posta o codigo aqui por favor.

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

Esse ai é a classe de conexão:

package dados;
import javax.swing.;
import java.sql.
;

/**
*

  • @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);
    }
    }
    }

up

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!

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:

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

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.