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 {
@Override
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>");
}
}