NullPointerException Problema [RESOLVIDO]  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
AlanHoinacki
HelloWorld
[Avatar]

Membro desde: 12/08/2011 08:07:26
Mensagens: 10
Localização: Colider/MT
Offline

Olá pessoal!

Estou começando em Java e me deparei com o seguinte erro:

Exception in thread "main" java.lang.NullPointerException
at jdbc.dao.TccDAO.adiciona(TccDAO.java:27)

O trecho ao qual o erro se refere é esse:

Vi que tem bastante posts semelhantes no fórum, pesquisei mas não consegui encontrar o problema.

Se puderem me ajudar, eu agradeço!

Abraço!

This message was edited 2 times. Last update was at 12/08/2011 15:43:13


Alan Hoinacki
"Sobre os ombros de gigantes!"
thiago.correa
GUJ Master
[Avatar]

Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline

Meu palpite vai para a variável connection! Indica aí para nós qual é a linha 27

---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
[MSN]
ManoJava
JavaEvangelist
[Avatar]

Membro desde: 23/04/2009 09:18:23
Mensagens: 480
Localização: Mococa-SP
Offline

Bom dia!!

Primeira coisa coloca um BreakPoint nessas linhas onde vc seta os valores, debuga e veja se algum desses parametros esta retornando null, veja se sua tabela aceita valores null, etc...

Att.

"Há Três coisas que nunca voltam atrás: A flecha lançada, a palavra pronunciada e a oportunidade perdida." - Provérbio Chinês

In Guj We Trust!

Bacharel em Ciência da Computação
MBA - Gestão de Projetos
[WWW]
caio.ribeiro.pereira
JavaChild
[Avatar]

Membro desde: 03/04/2011 16:53:16
Mensagens: 121
Localização: São Vicente - SP
Offline

o erro ta na linha 27, como vc nao colocou o código fonte completo, o meu palpite é na linha:


Errado:


Correto


A ordem dos atributos sql começam apartir do 0 e não do 1, ai talvez o erro seja na no setDate pois nele vc cita o indice 4 que não existe pois deveria ser o número 3.

Enfim, é só um palpite e caso esteja errado, favor me corrigir

This message was edited 1 time. Last update was at 12/08/2011 09:41:29


Caio Ribeiro Pereira
Freelancer em Desenvolvimento Web
Portifólio: http://crpwebdev.com
Mail: caio.ribeiro.pereira@gmail.com
Twitter: @crp_underground , @UdgLinuxBlog e @UdgWebDev
Blogs: http://www.crpunderground.wordpress.com , http://www.udgwebdev.com , http://www.udglinux.com
DZR
JavaBaby
[Avatar]

Membro desde: 06/08/2008 07:17:14
Mensagens: 87
Offline

A sua variável connection não está vazia?
Poste, de preferência, o erro todo e o seu código todo, pois só essas linhas fica meio vago arranjar solução.

"Só um tolo testa a profundidade da água com os dois pés." - Provérbio Ganense
"Viva todos os dias de sua vida como se fosse o último!
Vai que um dia vc acerta..."
thiago.correa
GUJ Master
[Avatar]

Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline

caio.ribeiro.pereira wrote:o erro ta na linha 27, como vc nao colocou o código fonte completo, o meu palpite é na linha:


Errado:


Correto


A ordem dos atributos sql começam apartir do 0 e não do 1, ai talvez o erro seja na no setDate pois nele vc cita o indice 4 que não existe pois deveria ser o número 3.

Enfim, é só um palpite e caso esteja errado, favor me corrigir


Tem mais esse erro, mas, não seria uma NPE, ACHO que seria uma SQLException

---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
[MSN]
DZR
JavaBaby
[Avatar]

Membro desde: 06/08/2008 07:17:14
Mensagens: 87
Offline

caio.ribeiro.pereira wrote:o erro ta na linha 27, como vc nao colocou o código fonte completo, o meu palpite é na linha:


Errado:


Correto


A ordem dos atributos sql começam apartir do 0 e não do 1, ai talvez o erro seja na no setDate pois nele vc cita o indice 4 que não existe pois deveria ser o número 3.

Enfim, é só um palpite e caso esteja errado, favor me corrigir


Na verdade, o rapaz está certo, pois o PreparedStatement não começa do 0, e sim do 1.
O valor que consta não é como se fosse um vetor, e sim indicando a qual "?" o campo pertence.

Ou seja, aqui realmente está correto:



O que eu posso suspeitar, sem ter o código do camarada:

1. O objeto de conexão está nulo.
2. Algumas das variáveis inseridas do Prepared Statement está NULL, e a tabela não aceita o campo null
3. Só tenho dois palpites...





"Só um tolo testa a profundidade da água com os dois pés." - Provérbio Ganense
"Viva todos os dias de sua vida como se fosse o último!
Vai que um dia vc acerta..."
AlanHoinacki
HelloWorld
[Avatar]

Membro desde: 12/08/2011 08:07:26
Mensagens: 10
Localização: Colider/MT
Offline

Nossa, a ajuda é rápida aqui hem...

O código completo da classe é:

Vlw!

This message was edited 2 times. Last update was at 12/08/2011 15:42:13


Alan Hoinacki
"Sobre os ombros de gigantes!"
DZR
JavaBaby
[Avatar]

Membro desde: 06/08/2008 07:17:14
Mensagens: 87
Offline

E o erro? Poste tb.

Coloque seu código entre as tags ["CODE"] e ["/CODE"] (retire as aspas), para melhor visualização no fórum.

Vlw.

"Só um tolo testa a profundidade da água com os dois pés." - Provérbio Ganense
"Viva todos os dias de sua vida como se fosse o último!
Vai que um dia vc acerta..."
AlanHoinacki
HelloWorld
[Avatar]

Membro desde: 12/08/2011 08:07:26
Mensagens: 10
Localização: Colider/MT
Offline

Acho que DZR está correto. Realmente havia problema com a variável "connection".

Esta estava assim: this.connection = ConnectionFactory.getConnection();

e deveria ser assim: this.connection = new ConnectionFactory().getConnection();

Mas mesmo assim o problema persiste.

Alan Hoinacki
"Sobre os ombros de gigantes!"
AlanHoinacki
HelloWorld
[Avatar]

Membro desde: 12/08/2011 08:07:26
Mensagens: 10
Localização: Colider/MT
Offline

O Erro:

Exception in thread "main" java.lang.NullPointerException
at jdbc.dao.TccDAO.adiciona(TccDAO.java:26)
at jdbc.teste.TestaInsere.main(TestaInsere.java:24)

A linha 24 apenas chama o método adiciona.

Alan Hoinacki
"Sobre os ombros de gigantes!"
DZR
JavaBaby
[Avatar]

Membro desde: 06/08/2008 07:17:14
Mensagens: 87
Offline

Bem, aqui está mostrando que o seu construtor não iniciou a variável connection.
Como não conheço todo o seu projeto, estou supondo que o jdbc é um pacote no seu projeto, e que o mesmo está acessível, ou seja, ele é public static.
Se o jdbc não for um pacote, sugiro criar uma classe estática para o ConnectionFactory.
Retire o atributo private do Connection (sei que não fará diferença alguma, mas comigo funcionou sem o private. Às vezes o peso do erro atrapalha)...
Retire o this.connection = ConnectionFactory.getConnection() e coloque-o antes da linha 26 (no caso, antes da linha PreparedStatement stmt = connection.prepareStatement(sql); ).
Se puder, debugue o projeto e veja se a variável connectio está sendo preenchida, pois pode estar com problema no ConnectionFactory, impedindo do drive JDBC conectar om o banco de dados. Aí, retorna um objeto vazio.

"Só um tolo testa a profundidade da água com os dois pés." - Provérbio Ganense
"Viva todos os dias de sua vida como se fosse o último!
Vai que um dia vc acerta..."
thiago.correa
GUJ Master
[Avatar]

Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline

at jdbc.dao.TccDAO.adiciona(TccDAO.java:26)

Cara o que interessa é essa classe na linha 26, é aí que tá ocorrendo o erro!

---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
[MSN]
lucasportela
JavaTeenager

Membro desde: 28/12/2010 16:46:01
Mensagens: 198
Offline

Os parametros do PreparedStatement começam a contagem com 1 até onde eu sei...

http://download.oracle.com/javase/1.3/docs/api/java/sql/PreparedStatement.html

Precisa controlar o patrimônio de informática de sua empresa em um clique?

Controle de Patrimônio de Informática

Sobre java:

Java
[WWW]
lucasportela
JavaTeenager

Membro desde: 28/12/2010 16:46:01
Mensagens: 198
Offline

Creio eu que o erro seja aqui:



não olhei o código completo com essa identação maluca que postou, mas não entendi o 'void', era pra ser um construtor?


Precisa controlar o patrimônio de informática de sua empresa em um clique?

Controle de Patrimônio de Informática

Sobre java:

Java
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team