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