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();
}
}
Ok, parou de dar o erro, agora como eu faço para que ele leia o código que eu digitei. Imbuti no sql o código que eu queria alterar só pra testar e deu certo, agora preciso que ele leia o que eu digitar. Tenho que usar ResultSet?
String comando = "UPDATE contato SET nome = ? , telefone = ? , celular = ?, dataNascimento = ? ,endereco = ?, cidade = ?, estado = ? WHERE codigo = 12 ";