ERRO ACONTECENDO: java.lang.NullPointerException : null

9 respostas
R

Olá amigos,
Como resolvo este erro?
Porque a conexão está dando NULA? Me ajudem por favor!!!

Minha classe de conexão…

[color=red]public class ConexaoSystem {

private Connection conn;

private PreparedStatement stmt;

private ResultSet rs;

public ResultSet getRs() {

return rs;

}

public void setRs(ResultSet rs) {

this.rs = rs;

}

public Connection getConn() {

return conn;

}

public void setConn(Connection conn) {

this.conn = conn;

}

public PreparedStatement getStmt() {

return stmt;

}

public void setStmt(PreparedStatement stmt) {

this.stmt = stmt;

}

public void fecharConexao() throws SQLException{

this.conn.close();

this.stmt.close();

}

public void conexao() {

try {

Class.forName(“com.mysql.jdbc.Driver”).newInstance();

}catch (InstantiationException erroInstancia) {

JOptionPane.showMessageDialog(null, “Erro ocorrido… NÃO FOI POSSÍVEL INSTANCIAR A CLASSE!!!” +erroInstancia);

}catch (IllegalAccessException erroAcesso) {

JOptionPane.showMessageDialog(null, “Erro ocorrido… NÃO FOI POSSÍVEL ACESSAR A CLASSE!!!” +erroAcesso);

}catch (ClassNotFoundException erroDriver) {

JOptionPane.showMessageDialog(null, “Erro ocorrido… DRIVER NÃO LOCALIZADO!!!” +erroDriver);

}

try {

this.conn = DriverManager.getConnection(“jdbc:mysql://localhost/storesystem,root,123456);

} catch (SQLException erroSQL) {

JOptionPane.showMessageDialog(null, “Erro ocorrido… FALHA NA MANIPULAÇÃO DO BANCO!!!” +erroSQL);

}

<a href="//JOptionPane.showMessageDialog">//JOptionPane.showMessageDialog</a>(null, Conectou com Sucesso!!!);

}

}[/color][size=18] [/size]

<em><strong><strong><strong><strong><em><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>//___________________//</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></em>//</strong></strong></strong></strong></em>______________________________________

Minha classe DAO.

[color=blue]package br.com.storesystem.certificado.dao;

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

import br.com.storesystem.certificado.bean.Clientes;
import br.com.storesystem.uteis.ConexaoSystem;

public class ControleClientesDAO {

private ConexaoSystem conexao = null;

public List pesquisarClientes(String pesquisa, String opcao_filtro)

{

List lista_Clientes = new ArrayList();

ResultSet rs = null;

String sql_pesquisa = “”;

if(opcao_filtro.equals(tem))

sql_pesquisa = SELECT * FROM clientes WHERE upper(nome_cliente) LIKE '%+pesquisa.toUpperCase()+"%’";

else if(opcao_filtro.equals(inicia))

sql_pesquisa = SELECT * FROM clientes WHERE upper(nome_cliente) LIKE '%+pesquisa.toUpperCase()+"’";

else if(opcao_filtro.equals(finaliza))

sql_pesquisa = SELECT * FROM clientes WHERE upper(nome_cliente) LIKE '”+pesquisa.toUpperCase()+"%’";

try {

conexao  = new ConexaoSystem();

conexao.setStmt(conexao.getConn().prepareStatement(sql_pesquisa));

rs = conexao.getStmt().executeQuery();

//ResultSet rs = stmt.executeQuery(sql_pesquisa);

while (rs.next()) {

Clientes user = new Clientes();

//user.setId_cliente(Integer.valueOf(rs.getString(“id_cliente”)));

user.setNome_cliente(rs.getString(nome_cliente));

user.setLogradouro(rs.getString(logradouro));

user.setEndereco(rs.getString(endereco));

user.setNu_residencia(rs.getString(nu_residencia));

user.setBairro(rs.getString(bairro));

user.setCidade(rs.getString(cidade));

user.setUf(rs.getString(uf).toUpperCase());

user.setCep(rs.getString(cep));

user.setTel_cliente(rs.getString(tel_cliente));

user.setCel_cliente(rs.getString(cel_cliente));

user.setCpf(rs.getString(cpf));

user.setEmail_cliente(rs.getString(email_cliente).toLowerCase());

lista_Clientes.add(user);

}

} catch (SQLException Banco) {

JOptionPane.showMessageDialog(null, "Erro de manipulação do banco: "+Banco);

Banco.printStackTrace();

}

return lista_Clientes;

}

}[/color]
Alguem poder me ajudar?[size=9] [/size]

Obrigado.

9 Respostas

M

Amigo pode usar a tag [code] para mostrar o codigo assim facilita a visualização do mesmo (y) :)

F

Cara não entendi sua duvida, se quer mostra uma mensagem informando a conexão, pq não usa um System.out.println ou um JOptionPane:

Class.forName("com.mysql.jdbc.Driver").newInstance();
			System.out.println("conectado com sucesso");

Nesse seu exemplo da classe conexão, ele não vai exibir nada mesmo.
testei sua conexão e está ok.

A

Outra dica: nunca deixe de exibir em algum lugar (console, arquivo de log, tela…) o stackTrace da exception.

Como vc pode perceber, mesmo pequenos códigos, sem o stackTrace, fica complicado encontrar o ponto exato em que está ocorrendo o NullPointer.

No seu caso, utilize o método “printStackTrace()” dentro dos catch’s para saber o ponto exato em que está ocorrendo a exception.

[]'s
Artur.

P

Todo codigo favor colocar entre [code]
vlw

R

Está acontecendo algum erro no console? Pelo que vi sua conexão está ok.

M

coloca entre as tags code pra fica mais facil de ler

R

Quando rodo a aplicação, ela não está trazendo os resultados do Banco de dados, estourando não tela o “java.lang.NullPointerException : null”.
Esta é o grande problema…

R
public class ConexaoSystem {
private Connection conn;
private PreparedStatement stmt;
private ResultSet rs;
public ResultSet getRs() {
return rs;
}
public void setRs(ResultSet rs) {
this.rs = rs;
}
public Connection getConn() {
return conn;
}
public void setConn(Connection conn) {
this.conn = conn;
}
public PreparedStatement getStmt() {
return stmt;
}
public void setStmt(PreparedStatement stmt) {
this.stmt = stmt;
}
public void fecharConexao() throws SQLException{
this.conn.close();
this.stmt.close();
}
public void conexao() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch (InstantiationException erroInstancia) {
JOptionPane.showMessageDialog(null, "Erro ocorrido... NÃO FOI POSSÍVEL INSTANCIAR A CLASSE!!!" +erroInstancia);
}catch (IllegalAccessException erroAcesso) {
JOptionPane.showMessageDialog(null, "Erro ocorrido... NÃO FOI POSSÍVEL ACESSAR A CLASSE!!!" +erroAcesso);
}catch (ClassNotFoundException erroDriver) {
JOptionPane.showMessageDialog(null, "Erro ocorrido... DRIVER NÃO LOCALIZADO!!!" +erroDriver);
}
try {
this.conn = DriverManager.getConnection("jdbc:mysql://localhost/storesystem","root","123456");
} catch (SQLException erroSQL) {
JOptionPane.showMessageDialog(null, "Erro ocorrido... FALHA NA MANIPULAÇÃO DO BANCO!!!" +erroSQL);
}
//JOptionPane.showMessageDialog(null, "Conectou com Sucesso!!!");
}
}
________________________________//___________________//_______________________//_______________________________________________

Minha classe DAO.

package br.com.storesystem.certificado.dao;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import br.com.storesystem.certificado.bean.Clientes;
import br.com.storesystem.uteis.ConexaoSystem;

public class ControleClientesDAO {
private ConexaoSystem conexao = null;
public List<Clientes> pesquisarClientes(String pesquisa, String opcao_filtro)
{
List<Clientes> lista_Clientes = new ArrayList<Clientes>();
ResultSet rs = null;
String sql_pesquisa = "";
if(opcao_filtro.equals("tem"))
sql_pesquisa = "SELECT * FROM clientes WHERE upper(nome_cliente) LIKE '%"+pesquisa.toUpperCase()+"%'";
else if(opcao_filtro.equals("inicia"))
sql_pesquisa = "SELECT * FROM clientes WHERE upper(nome_cliente) LIKE '%"+pesquisa.toUpperCase()+"'";
else if(opcao_filtro.equals("finaliza"))
sql_pesquisa = "SELECT * FROM clientes WHERE upper(nome_cliente) LIKE '"+pesquisa.toUpperCase()+"%'";
try {
conexao = new ConexaoSystem();
conexao.setStmt(conexao.getConn().prepareStatement(sql_pesquisa));
rs = conexao.getStmt().executeQuery();
//ResultSet rs = stmt.executeQuery(sql_pesquisa);
while (rs.next()) {
Clientes user = new Clientes();
//user.setId_cliente(Integer.valueOf(rs.getString("id_cliente")));
user.setNome_cliente(rs.getString("nome_cliente"));
user.setLogradouro(rs.getString("logradouro"));
user.setEndereco(rs.getString("endereco"));
user.setNu_residencia(rs.getString("nu_residencia"));
user.setBairro(rs.getString("bairro"));
user.setCidade(rs.getString("cidade"));
user.setUf(rs.getString("uf").toUpperCase());
user.setCep(rs.getString("cep"));
user.setTel_cliente(rs.getString("tel_cliente"));
user.setCel_cliente(rs.getString("cel_cliente"));
user.setCpf(rs.getString("cpf"));
user.setEmail_cliente(rs.getString("email_cliente").toLowerCase());
lista_Clientes.add(user);
}
} catch (SQLException Banco) {
JOptionPane.showMessageDialog(null, "Erro de manipulação do banco: "+Banco);
Banco.printStackTrace();
}
return lista_Clientes;
}

}
V

Um homem sábio uma vez disse que ao invés de dar o peixe, devemos ensinar a pescar:
[youtube]http://www.youtube.com/watch?v=joWldbcp1So[/youtube]
[youtube]http://www.youtube.com/watch?v=WeSitNPAExg[/youtube]

Criado 1 de fevereiro de 2012
Ultima resposta 2 de fev. de 2012
Respostas 9
Participantes 8