Boa noite.
Criei uma classe generica para conexão e manipulação ao banco de dados(access). A classe ta compilando sem erros, porém criei uma Interface grafica no netbeans para testar a classe generica. Sendo assim, no metodo contrutor da classe de interface grafica inseri o seguinte codigo:if (!BD.getConnection())
{
JOptionPane.showMessageDialog(null, "Falha na conexão, o sistema será fechado!");
System.exit(0);
}
Mas, ao executar essa classe, com apenas esse código, sao gerados erros.
segue os erros:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at BD.getConnection(BD.java:19)
at Exemplo1303.<init>(Exemplo1303.java:10)
at Exemplo1303$1.run(Exemplo1303.java:165)
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)
Para ficar mais facil, postarei as 2 classes que fiz (a de interface nao fiz na unha, usei o netbeans)
*Classe Genérica*
import java.sql.*;
import javax.swing.JOptionPane;
public class BD
{
public static Connection connection = null;
public static Statement statement = null;
public static ResultSet resultSet = null;
public static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
public static final String URL = "jdbc:odbc:meubd";
//Método que faz a conexão com o banco de dados
//retorna true se houver com sucesso, ou false em caso negativo
public static boolean getConnection()
{
try
{
Class.forName(DRIVER);
statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
System.out.println("Conectou...");
return true;
}
catch(ClassNotFoundException erro)
{
JOptionPane.showMessageDialog(null, "Problema na conexão JDBC-ODBC!");
return false;
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null, "Problema na conexão com o banco de dados!");
return false;
}
}
//Fecha ResultSet, Statement e Connection
public static void close()
{
closeResultSet();
closeStatement();
closeConnection();
}
private static void closeConnection()
{
try
{
connection.close();
System.out.println("Desconectou...");
}
catch(SQLException erro)
{
}
}
private static void closeStatement()
{
try
{
statement.close();
}
catch(Exception e)
{
}
}
private static void closeResultSet()
{
try
{
resultSet.close();
}
catch(Exception e)
{
}
}
public static void setResultSet(String sql)
{
try
{
resultSet = statement.executeQuery(sql);
}
catch(SQLException erro)
{
}
}
//Executa um script SQL de atualização
//Retorna um valor inteiro contendo a quantidade de linhas afetadas
public static int runSQL(String sql)
{
int quant = 0;
try
{
quant = statement.executeUpdate(sql);
}
catch(SQLException erro)
{
}
return quant;
}
}
public Exemplo1303() {
initComponents();
if (!BD.getConnection()) // Inseri apenas o IF no metodo contrutor, gerando o erro acima
{
JOptionPane.showMessageDialog(null, "Falha na conexão, o sistema será fechado!");
System.exit(0);
}
}
Se possível, conto com a ajuda dos amigos.
Desde já, Grato!
