Javafree
Página Inicial do Fórum > JavaFX

Erro de NullPointer em consulta Personalizada MySQL e DatePicker JavaFX



Criar novo tópico   Responder tópico


  1. rickzferry
    Posts:3


    Comment Arrow

    Publicado em: 30/06/2016 22:18:48

    Boa noite. Há meses arrasto esse problema. Estou precisando de ajuda com um erro que só apareça na hora de executar a aplicação. É um projeto de caixa (entradas menos despesas = saldo de caixa). Tenho um banco MySQL onde cadastro as Despesas da empresa. Uma view JavaFX que vai mostrar a soma de todas as despesas cadastradas de uma determinada data. A consulta é essa:

    De fato isso no console do MySQL nao da erro. Retorna OK. A classe Despesa.java tem essa cara:


    A classe DespesaDAO que tem as conexões e o metódo QUE ESTA ME DANDO GRANDE TRABALHO E DOR DE CABEÇA:


    O controller da View onde o usuário vai selecionar a data num componente DATEPICKER do JavaFX e passar como parametro para o metodo da classe DespesaDAO. java que vai "puxar" do banco

    e aqui esta o erro de exceção que dá depois que o usuario SELECIONA A DATA QUE QUER, CLICA NO BOTÃO "MOSTRAR TOTAL DE DESPESAS DA DATA ESCOLHIDA"


    Explicando: Depois que o usuário cadastrou a despesa (nome, valor, descrição e data) existe uma janela que seleciona essas informações no banco. E tem um botão ao lado de um datePicker (datePicker esse que é ONDE A DATA É ESCOLHIDA) que vai chamar o metodo "teste" (pois ainda é um teste) que vai e executa a consulta de cima desse post para depois setar num TextField. Só que dá erro de NullPointer, como se nao conseguisse pegar nada no banco (que esta todo populado de itens).
    Alguma sugestão de "o que" pode estar acontecendo de errado? A lógica do método "somarValoresDespesa()" está correta? Tem coisa de mais ou coisa faltando?
    Desde já obrigado e boa noite a todos.



  1. staroski
    Posts:4600


    Comment Arrow

    Publicado em: 01/07/2016 11:32:56

    No método somarValoresDespesa da sua classe DespesaDAO, mais precisamente na linha 115, você está chamando o o Date.valueOf passando null como parâmetro, por isso estoura NullPointerException


    _________________

    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC
    http://www.staroski.com.br

    Acesse http://www.guj.com.br/



  1. romarcio
    Posts:421


    Comment Arrow

    Publicado em: 01/07/2016 19:06:48

    Olá,
    dentro do seu while() você está tentando recuperar uma data com essa linha de código



    porém, no seu SQL não existe um retorno da coluna data, apenas da soma, veja:



    Assim, quando você usa resultado.getDate(2), ele procura por esse valor no ResultSet, porém a posição 2 não existe, já que não fez parte do SELECT. Como é um somatório o retorno desse SELECT, não sei porque você precisa da data.
    _________________

    http://www.mballem.com/
    Desvendando o MongoDB, do Mongo Shell ao Java Driver - http://bit.ly/1HL8Rya



  1. rickzferry
    Posts:3


    Comment Arrow

    Publicado em: 01/07/2016 22:47:00

    [quote="romarcio"]Olá,
    dentro do seu while() você está tentando recuperar uma data com essa linha de código



    porém, no seu SQL não existe um retorno da coluna data, apenas da soma, veja:



    Assim, quando você usa resultado.getDate(2), ele procura por esse valor no ResultSet, porém a posição 2 não existe, já que não fez parte do SELECT. Como é um somatório o retorno desse SELECT, não sei porque você precisa da data.


    MBallen Obrigado por responder. Na correria coloquei "coisa demais" aqui. O método é assim (e se puder dizer O QUÊ mais estou a errar, agradeço!)
    MÉTODO QUE CRIEI E DA O ERRO DE NULL POINTER

    E mesmo assim ele dá erro na linha 115

    O que essa instrução tem de errado, já que no banco tem dados, e se eu executar a consulta no console do MySQL mostra o que quero? O retorno dessa deveria ser DOUBLE ao invés do tipo Despesa? A data é FUNDAMENTAL nessa aplicação porque é um SIMPLES sisteminha de CAIXA (entradas de $ MENOS saidas de $ = SALDO). Por isso na View o usuário precisa escolher a data que ele quer que faça o "cálculo". Certo? Por favor me ajude a "puxar" essa data do banco; a enxergar o que não estou vendo. Desde, e mais uma vez, obrigado.



  1. rickzferry
    Posts:3


    Comment Arrow

    Publicado em: 01/07/2016 22:48:59

    [quote="staroski"]No método somarValoresDespesa da sua classe DespesaDAO, mais precisamente na linha 115, você está chamando o o Date.valueOf passando null como parâmetro, por isso estoura NullPointerException


    staroski Obrigado por responder. Como posso fazer para "parar" esse erro de NULLPOINTER? O que fazer na linha 115 (stmt.setDate(1,Date.valueOf(data)) para corrigi-la? Desde já obrigado.



  1. Relacionados