Bom dia pessoal, estou com problema para persistir a data de nascimento no Oracle 10g. Tenho um formulário onde o usuário entra com alguns dados e com a data de nascimento.
A Data de nascimento é do tipo Calendar, mas no Oracle o campo Data de nascimento é do tipo Date.
As Classes estão mais ou menos assim.
public Calendar getData() {
return data;
}
public void setData(Calendar data) {
this.data = data;
}
public void adicionaContato(Contato contato){
try{
this.pstmt = this.con.prepareStatement("insert into contatos (id, nome, email, endereco, dataNascimento) values (cont_seq.nextval, ?, ?, ?, ?)");
this.pstmt.setString(1, contato.getNome());
this.pstmt.setString(2, contato.getEmail());
this.pstmt.setString(3, contato.getEndereco());
this.pstmt.setDate(4, new Date(contato.getData().getTimeInMillis()));
this.pstmt.execute();
}
catch(SQLException e){
e.printStackTrace();
}
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Preparando o response
PrintWriter out = response.getWriter();
// Pegando os valores vindo do formulário
String nome = request.getParameter("nome");
String email = request.getParameter("email");
String endereco = request.getParameter("endereco");
String dtNascimento = request.getParameter("dtNascimento");
Calendar calendar = null;
// Fazendo a conversão da Data
try{
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dtNascimento);
calendar = Calendar.getInstance();
calendar.setTime(date);
}
catch(ParseException e){
System.out.println("catch: " + e);
}
// Montando um objeto contato
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setData(calendar);
// Salvando o contato no banco
ContatoDAO dao = new ContatoDAO();
dao.adicionaContato(contato);
}