Erro: java.lang.NullPointerException

5 respostas
D

Boa tarde pessoal. Estou desenvolvendo um sisteminha e estou tentando fazer a interação de uma JFrame (tela) com o banco de dados para consultar determinados dados, mas está dando este erro: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException!

os cógigos são esses:

Tela:
private void jBBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                         

        BD_Consulta objConsu = new BD_Consulta();
        

        if(jRBProjeto.isSelected()){
            //nomeTabela = jRBProjeto.getText();

            condBusca = jTFBusca.getText();
            
            if(condBusca.equals("")){

                objConsu.consultaProjeto();
            }
            else{

                objConsu.consultaProjeto(condBusca);
                
            }
        }

        else if(jRBProfessor.isSelected()){
            //nomeTabela = jRBProfessor.getText();

            condBusca = jTFBusca.getText();
            if(condBusca.equals("")){
                objConsu.consultaProfessor();
            }
            else
                objConsu.consultaProfessor(condBusca);
        }
        else{
            //nomeTabela = jRBAluno.getText();

            condBusca = jTFBusca.getText();
            if(condBusca.equals("")){
                objConsu.consultaAluno();
            }
            else
                objConsu.consultaAluno(condBusca);
        }
            

        
    }
Classe BD_Consulta:
public void consultaProjeto(String titulo){

        this.titulo = titulo;

        String query = "SELECT * FROM projeto WHERE projeto.titulo="+titulo;

        con.consultar(query);

    } // Fim do método consultaProfessor()

    public void consultaProjeto(){

        String query = "SELECT * FROM projeto";

        con.consultar(query);

    } // Fim do método consultaProfessor()
Classe Conexão:
public void consultar(String query){

        conectar();
        
        try {

            resultSet = comando.executeQuery(query);

            Mostrar obj = new Mostrar(resultSet); // Instancia a classe Mostrar
            //obj. //chamará o método para mostrar o conjunto

            metaData = resultSet.getMetaData();
            int nColunas = metaData.getColumnCount();

            for ( int i = 1; i <= nColunas; i++ ) {

                System.out.printf( "%-8s\t", metaData.getColumnName( i ));
            }

            System.out.println(); // Quebra de linha
            // Imprime cada linha da tabela resposta
            while (resultSet.next()) { // pega a próxima linha até o final
              for ( int i = 1; i <= nColunas; i++ ) {
                  System.out.printf( "%-8s\t", resultSet.getObject( i ));
              }
              System.out.println();
          } // fim do while

        } catch (SQLException ex) {

            Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
        }

        finally{
            fechar();
        }


    }

    void conectar() {
       try {
           
           Class.forName( "org.postgresql.Driver" ); // carrega classe de driver do banco de dados
           // estabelece conexão com o banco de dados
           conexao = DriverManager.getConnection( url, user, senha);
           // cria Statement para consultar banco de dados
           comando = conexao.createStatement();
           System.out.println("Conectado!");
       } catch (ClassNotFoundException e) {
           imprimeErro("Erro ao carregar o driver", e.getMessage());
           
       } catch (SQLException e) {
           imprimeErro("Erro ao conectar", e.getMessage());
           
       }
   } // Fim do método conectar()

   // Método privado que fecha a conexão com o Banco de Dados
   void fechar() {
       try {
           comando.close();
           conexao.close();
           System.out.println("Conexão Fechada");
       } catch (SQLException e) {
           imprimeErro("Erro ao fechar conexão", e.getMessage());
       }
   } // Fim do método fechar()

   // Método privado que imprime mensagens de erro provenientes Exceções
   void imprimeErro(String msg, String msgErro) {
       JOptionPane.showMessageDialog(null, msg + ": " + msgErro, "Erro crítico", 0);
       System.err.println(msg);
       System.out.println(msgErro);
       //System.exit(0);
   } // Fim do método imprimeErro()

5 Respostas

paulo.ubuntu

Fala ae companheiro!

Cara, so com esses snippets que voce postou fica impossivel te ajudar… por um motivo

  1. pq agente nao sabe em qual linha esta dando NullPointerExeception

O que eu sugiro para voce…que pode nos ajudar a te ajudar eh.

Poste o projeto inteiro… ou pelo menos a excecao (Stacktrace) para agente ver o que ta rolando beleza?

Inteh

D

Realmente Paulo, sou nube no fórum. Estou pegando as mãnhas ainda rsrsrs!

E é pura verdade, o erro estava em uma linha que eu não tinha postado rsrs!

Mas o erro é que eu não tinha instanciado a classe Conexao.
Por isso estava dando erro.

Estava assim:

Conexao con;

assinatura do método{
      con.metodo();
}

Mas desde já muito obrigado pela preocupação, ainda mais pelo dia de domingo rsrs!

Abraço.

D

Solução dificílima:

Obg.

Luciano_Lopes

Os tópicos com java.lang.NullPointerException estão ficando populares no guj rsrsr

D

Concerteza… bom demais né Luciano!

Abraz

Criado 3 de julho de 2011
Ultima resposta 3 de jul. de 2011
Respostas 5
Participantes 3