Olá, estou tentando fazer um cadastro. Consegui inserir e listar os contatos, agora não estou conseguindo alterar os contatos. Dá erro no SQL. Se alguém puder me ajudar. Colocarei meu código aqui:
AlterarContato.java
package Action;
import java.io.IOException;
import java.sql.Connection;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Dao.FabricaConexao;
import Dao.JDBCContatoDao;
import Model.Contato;
public class AlterarContato extends HttpServlet {
private static final long serialVersionUID = 1L;
public AlterarContato() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nome = request.getParameter("nome");
String telefone = request.getParameter("telefone");
String celular = request.getParameter("celular");
String dataNascimentoSt = request.getParameter("dataNascimento");
String endereco = request.getParameter("endereco");
String cidade = request.getParameter("cidade");
String estado = request.getParameter("estado");
Date date = null;
try {
date = new SimpleDateFormat("dd/MM/yyyy").parse(dataNascimentoSt);
} catch (ParseException e) {
e.printStackTrace();
throw new RuntimeException("Data Inválida!");
}
Contato novoContato = new Contato();
novoContato.setNome(nome);
novoContato.setTelefone(telefone);
novoContato.setCelular(celular);
novoContato.setDataNascimento(date);
novoContato.setEndereco(endereco);
novoContato.setCidade(cidade);
novoContato.setEstado(estado);
FabricaConexao fabrica = new FabricaConexao();
Connection conexao = fabrica.fazConexao();
JDBCContatoDao dao = new JDBCContatoDao(conexao);
dao.Alterar(novoContato);
fabrica.fecharConexao();
System.out.println("Contato alterado");
}
}
JDBCContatoDao.java
public void Alterar(Contato contato) {
String comando = "UPDATE contato SET nome = ? , telefone = ? , celular = ?, dataNascimento = ? ,endereco = ?, cidade = ?, estado = ? WHERE codigo = ? ";
PreparedStatement p;
try {
p = this.conexao.prepareStatement(comando);
p.setString(1, contato.getNome());
p.setString(2, contato.getTelefone());
p.setString(3, contato.getCelular());
p.setDate(4, new java.sql.Date(contato.getDataNascimento()
.getTime()));
p.setString(5, contato.getEndereco());
p.setString(6, contato.getCidade());
p.setString(7, contato.getEstado());
p.executeUpdate(comando);
p.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
alterarContato.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Agenda - Editar Contato</title>
</head>
<body>
<form action="AlterarContato" method="post">
Codigo: <input type="text" name="codigo"><br>
Nome: <input type="text" name="nome"><br>
Telefone: <input type="text" name="telefone"><br>
Celular: <input type="text" name="celular"><br>
Data de Nascimento: <input type="text" name="dataNascimento"><br>
Endereço: <input type="text" name="endereco"><br>
Cidade: <input type="text" name="cidade"><br>
Estado: <input type="text" name="estado"><br>
<br>
<input type="submit" value="Salvar"></form>
</body>
</html>
Não estou conseguindo achar o erro.