Boa noite pessoal,
Estou tendo dificuldade para tratar de um erro que talvez até seja banal, mas não estou conseguindo identificar o problema.
Sendo assim, peço ajuda de vocês para identificar e me ajudar a tratar dele.
O erro é o seguinte:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at entidades.FramePesquisa.btnPesquisarMouseClicked(FramePesquisa.java:239)
at entidades.FramePesquisa.access$100(FramePesquisa.java:19)
at entidades.FramePesquisa$2.mouseClicked(FramePesquisa.java:108)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6530)
Vi que o erro ocorre na linha 239 do código(abaixo):
Connection con = Conexao.abrirConexao();
PesquisaDAO pd = new PesquisaDAO(con);
List<PesquisaBean> listaPb = new ArrayList<PesquisaBean>();
listaPb = pd.listar(this.txtNome.getText());
DefaultTableModel tbm = (DefaultTableModel)tblConsulta.getModel();
for(int i = tbm.getRowCount()-1; i >= 0; i--){
tbm.removeRow(i);
}
int i = 0;
for(PesquisaBean pbLista : listaPb){ // ESTA É A LINHA 239
JOptionPane.showMessageDialog(null, pbLista.getNome()+" - "+pbLista.getResponsavel());
tbm.addRow(new String[1]);
tblConsulta.setValueAt(pbLista.getNome(), i, 0);
tblConsulta.setValueAt(pbLista.getResponsavel(), i, 1);
i++;
}
Conexao.fecharConexao(con);
Este é meu DAO:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class PesquisaDAO {
private Connection con;
public PesquisaDAO(Connection con){
setCon(con);
}
public Connection getCon() {
return con;
}
public void setCon(Connection con) {
this.con = con;
}
//**********************************************************************
public List<PesquisaBean> listar(String nome) {
String sql = "SELECT responsavel AS nome, 'Sim' AS responsavel"
+ " FROM responsavel"
+ " WHERE responsavel LIKE '%"+nome+"%'"
+ " UNION all"
+ " SELECT nome, 'Não'"
+ " FROM composicao_familiar"
+ " WHERE nome LIKE '%"+nome+"%')";
List<PesquisaBean> lista = new ArrayList<PesquisaBean>();
try {
PreparedStatement ps = getCon().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs != null) {
while (rs.next()) {
PesquisaBean pb = new PesquisaBean();
pb.setNome(rs.getString("nome"));
pb.setResponsavel("responsavel");
lista.add(pb);
}
return lista;
} else {
return null;
}
} catch (SQLException e) {
return null;
}
}
}
E este o Bean:
public class PesquisaBean {
private String nome;
private String responsavel;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getResponsavel() {
return responsavel;
}
public void setResponsavel(String responsavel) {
this.responsavel = responsavel;
}
}
Coloquei o trecho do Frame que gera o erro (FramePesquisa), o Bean (PesquisaBean) e o DAO (PesquisaDAO) para que não falte nenhum dado para análise de quem tentar me ajudar.
Se alguém precisa de mais alguma informação, avise que eu posto.
Agradeço desde já qualquer ajuda.
Att.
Rodrigo