java.lang.NullPointerException [RESOLVIDO]

4 respostas
java
A

Boa noite.

Estou fazendo um crud,
Porém ao executar para gravar os dados no banco (POSTGRES),
a aplicação retorna o erro:

Exception in thread main java.lang.NullPointerException

at br.com.servicedesk.jdbc.UsuarioDAO.cadastrar(UsuarioDAO.java:20)

at br.com.servicedesk.testes.TestUsuario.main(TestUsuario.java:21)

OBS.: Tenho uma aplicação similar com os mesmo código, mesmo banco mesmo driver do banco e nao dá erro

alguém ja deparou com isso?

GRATO

Classe principal

package br.com.servicedesk.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;

import br.com.servicedesk.entidades.Usuario;

public class UsuarioDAO {

	private Connection con = Conexao.getConnection();

	public void cadastrar(Usuario usuario) {

		String sql = "INSERT INTO usuario (nome, login, senha, telefone_1, telefone_2, email, id_nivel) VALUES(?,?,md5(?),?,?,?,?)";

		try {

			PreparedStatement preparador = con.prepareStatement(sql);

			preparador.setString(1, usuario.getNome());
			preparador.setString(2, usuario.getLogin());
			preparador.setString(3, usuario.getSenha());
			preparador.setString(4, usuario.getTel_1());
			preparador.setString(5, usuario.getTel_2());
			preparador.setString(6, usuario.getEmail());
			preparador.setInt(7, usuario.getNivel());

			preparador.execute();
			preparador.close();

			JOptionPane.showMessageDialog(null, "Usuário Cadastrado");
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "Erro ao cadastrar Usuário: " + e);
		}
	}

}





/////////////////////////////////////////////////////////////////////////////////////////////
classe de teste

package br.com.servicedesk.testes;

import br.com.servicedesk.entidades.Usuario;
import br.com.servicedesk.jdbc.UsuarioDAO;

public class TestUsuario {

	public static void main(String[] args) {
		
		Usuario usu = new Usuario();
		
		usu.setNome("Áquila Mota da Silva");
		usu.setLogin("aqsilva");
		usu.setSenha("mota");
		usu.setTel_1("([telefone removido]");
		usu.setTel_2("([telefone removido]");
		usu.setEmail("[email removido]");
		usu.setNivel(1);
		
		UsuarioDAO usuDao = new UsuarioDAO();
		usuDao.cadastrar(usu);

	}

}
//////////////////////////////////////////////////////

4 Respostas

P

Primeiro: qual é a linha 20?

Segundo: null pointer exception é

Object o = null;
o.qqMetodo(); // cabum

Portanto veja onde vc pode ter este caso. Sua conexão por exemplo

A

as linhas que ele acusa eh
1 - at br.com.servicedesk.jdbc.UsuarioDAO.cadastrar(UsuarioDAO.java:19) que eh a linha > PreparedStatement preparador = con.prepareStatement(sql);

2 - at br.com.servicedesk.testes.TestUsuario.main(TestUsuario.java:21)

P

99% de chance de con ser nulo

Faz antes

if ( con == null ) { da um print aqui }

E ai olha sua logica. Acho que vc armazena a conexão como um atributo e tem q fazer o famoso “se nulo entao constroi e armazena”

A

CorretÍssimo.
Na classe de conexão o CON estava retornando como Nulo
OBRIGADO!!

Criado 25 de outubro de 2016
Ultima resposta 25 de out. de 2016
Respostas 4
Participantes 2