Это мое соединение Класс/Метод:MySQL подключения идеально первый раз, второй раз возвращает NullPointer
static Connection connection = null;
Statement stm = null;
public static Connection getConexao() {
try {
// Carregando o JDBC Driver padrão
String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);
// Configurando a nossa conexão com um banco de dados//
String serverName = "192.168.0.222"; //caminho do servidor do BD
String mydatabase ="bd"; //nome do seu banco de dados
String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
String username = "user"; //nome de um usuário de seu BD
String password = "pass"; //sua senha de acesso
connection = DriverManager.getConnection(url, username, password);
return connection;
} catch (ClassNotFoundException e) { //Driver não encontrado
System.out.println("O driver expecificado nao foi encontrado.");
return null;
} catch (SQLException e) {
//Não conseguindo se conectar ao banco
System.out.println("Nao foi possivel conectar ao Banco de Dados.");
return null;
}
}
метод, которые вызываются, когда TextField потерял фокус:
private void puxaemailsiscart(String servico) throws SQLException {
Connection conn = ConectaBD.getConexao();
Statement stm = null;
ResultSet results = null;
stm = conn.createStatement();
try {
System.out.println();
results = stm.executeQuery ("SELECT * FROM " + servico + " WHERE protocolo =" + tfProtocolo.getText());
if(results.next()) {
tfEmailParte.setText(results.getString("Email").toString());
} else {
System.out.println("Protocolo nao encontrado");
}
results.close();
stm.close();
conn.close();
....
Проблема заключается в том, в первый раз, когда TextField потерял фокус, он отлично работает и возвращает результат базы данных, но когда я помещаю фокус в текстовое поле и снова потерял фокус, соединение возвращает нуль, почему? так как шаги такие же, как в первый раз?
StackTrace
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at telaprincipal$3.puxaemailsiscart(telaprincipal.java:499)
at telaprincipal$3.focusLost(telaprincipal.java:482)
Line 499: = Connection conn = ConectaBD.getConexao();
говорит, что здесь есть NullPoint, но почему?
ли 'ConectaBD' экземпляр класса (объект) или сам класс? –
Ваш метод getConexao возвращает значение null, если генерируется исключение (эффективно проглатывая исключение, не записывая его данные, я отмечаю), но вы используете возвращаемое значение независимо. –
Вы получаете System.out.println («O драйвер expecificado nao foi encontrado.»); или System.out.println («Nao foi possivel conectar ao Banco de Dados»); на консоли? – JohnnyAW