Caelum FJ21

2 respostas
java
Matheus_Henrique2

Estou com o seguinte problema ao adicionar um contato na minha lista, o capítulo onde estou estudando é esse : https://www.caelum.com.br/apostila-java-web/servlets/#para-saber-mais-web-servlet-e-initparam-annotation

java.lang.NullPointerException

br.com.devcruz.dao.ContatoDAO.adiciona(ContatoDAO.java:36)

br.com.devcruz.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:53)

javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Alguém pode me ajudar com o erro?

2 Respostas

Matheus_Henrique2

O link ta errado, link certo: https://www.caelum.com.br/apostila-java-web/servlets/#para-saber-mais-web-servlet-e-initparam-annotation

Matheus_Henrique2

Classe ContatoDAO

package br.com.devcruz.dao;

import java.sql.Connection;

import java.sql.Date;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.List;

import java.util.logging.Level;

import java.util.logging.Logger;

import br.com.devcruz.factory.ConnectionFactory;
import br.com.devcruz.modelo.Contato;

public class ContatoDAO {

private Connection connection;

public ContatoDAO() {

try {

this.connection = new ConnectionFactory().getConnection();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void adiciona(Contato contato) {

String sql = "insert into contatos (nome, email, endereco, dataNascimento) values (?,?,?,?)";

    try {

        PreparedStatement ps = connection.prepareStatement(sql);
        ps.setString(1, contato.getNome());
        ps.setString(2, contato.getEmail());
        ps.setString(3, contato.getEndereco());
        ps.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
        ps.execute();

    } catch (SQLException e) {

        throw new RuntimeException(e);

    }
}
public List getListaContatos() {

List contatos = new ArrayList();

Calendar dataNascimento = Calendar.getInstance();
try {
  	PreparedStatement stmt = connection.prepareStatement("SELECT * FROM contatos");
  	ResultSet rs = stmt.executeQuery();

  	while (rs.next()) {

  		Contato contato = new Contato();
  		contato.setId(rs.getLong("id"));
  		contato.setNome(rs.getString("nome"));
  		contato.setEmail(rs.getString("email"));
  		contato.setEndereco(rs.getString("endereco"));

  		dataNascimento.setTime(rs.getDate("dataNascimento"));
  		contato.setDataNascimento(dataNascimento);

  		contatos.add(contato);

  	}

  	return contatos;

  } catch (SQLException ex) {
  	Logger.getLogger(ContatoDAO.class.getName()).log(Level.SEVERE, null, ex);

  }

  return null;

}

}
Classe AdicionaContatoServlet

package br.com.devcruz.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.SQLException;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;
import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import br.com.devcruz.dao.ContatoDAO;
import br.com.devcruz.modelo.Contato;

@WebServlet("/adicionaContato")

public class AdicionaContatoServlet extends HttpServlet {

<a class="mention" href="/u/override">@Override</a>

protected void service(HttpServletRequest request, HttpServletResponse response)

throws IOException, ServletException {
PrintWriter out = response.getWriter();

  
  String nome = request.getParameter("nome");
  String endereco = request.getParameter("endereco");
  String email = request.getParameter("email");
  String dataEmTexto = request.getParameter("dataNascimento");
  Calendar dataNascimento = null;

  
  try {
  	Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
  	dataNascimento = Calendar.getInstance();
  	dataNascimento.setTime(date);
  } catch (ParseException e) {
  	out.println("Erro de conversão da data");
  	return; 
  }

  
  Contato contato = new Contato();
  contato.setNome(nome);
  contato.setEndereco(endereco);
  contato.setEmail(email);
  contato.setDataNascimento(dataNascimento);

  ContatoDAO dao = new ContatoDAO();
  dao.adiciona(contato);


  out.println("<html>");
  out.println("<body>");
  out.println("Contato " + contato.getNome() + " adicionado com sucesso");
  out.println("</body>");
  out.println("</html>");

}
}

Criado 23 de abril de 2018
Ultima resposta 23 de abr. de 2018
Respostas 2
Participantes 1