Estou com dificuldade para atualizar meu registro no banco de dados, ele não mostra nenhum erro, me retorna true, porém não atualiza. Segue o código
package br.com.agendaContato.servlets;
import java.io.IOException;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import br.com.agendaContato.bd.conexao.Conexao;
import br.com.agendaContato.jdbc.JDBCContatoDAO;
import br.com.agendaContato.objetos.Contato;
import com.google.gson.Gson;
public class updateContato extends HttpServlet {
private static final long serialVersionUID = 1L;
public updateContato(){
super();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
proccess(request, response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
proccess(request, response);
}
private void proccess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
Contato contato = new Contato();
try{
contato.setNome(request.getParameter("nomeEdit"));
contato.setEndereco(request.getParameter("enderecoEdit"));
contato.setTelefone(request.getParameter("telefoneEdit"));
Conexao conec = new Conexao();
Connection conexao = conec.abrirConexao();
JDBCContatoDAO jdbcContatoDao = new JDBCContatoDAO(conexao);
boolean retorno = jdbcContatoDao.updateContato(contato);
conec.fecharConexao();
// Para retornar uma mensagem para o usuario
Map<String, String> msg = new HashMap<String, String>();
if(retorno){
msg.put("msg","Ok.");
}else{
msg.put("msg","Not.");
}
/*
* Retorna a resposta(mensagem) para o usuário a partir do Json
*/
String json = new Gson().toJson(msg);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}catch(Exception e){
e.printStackTrace();
}
}
}
public boolean updateContato(Contato contato){
String comando = "update contato set nome=?, endereco=?, telefone=? where idcontato = ?";
PreparedStatement p;
try{
p = this.conexao.prepareStatement(comando);
p.setString(1, contato.getNome());
p.setString(2, contato.getEndereco());
p.setString(3, contato.getTelefone());
p.setInt(4, contato.getId());
p.execute();
}catch(Exception e){
e.printStackTrace();
return false;
}
return true;
}