Senhores,
Estou desenvolvendo uma pequena aplicação web e que usa um formulário html5 para cadastro e estou com uma dúvida em como eu devo fazer para pegar a data de nascimento que utiliza 3 select option(dia, mês e ano) e consequentemente gravar-la no mysql… dd/MM/aaaa para isso fiz minha servlet usando a logica da apostila caelum, porém estou com essa dificuldade vejam:
Minha Servlet:
package br.com.cad.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.cad.dao.Cadastro;
import br.com.cad.basica.Contato;
public class AddDados extends HttpServlet{
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
PrintWriter out = response.getWriter();
String nome = request.getParameter("nome");
String sobrenome = request.getParameter("sobrenome");
String rg = request.getParameter("rg");
String cpf = request.getParameter("cpf");
String sexo = request.getParameter("sexo");
String dataEmTexto = request.getParameter("DataNascimento1");
Calendar dataNascimento1 = null;
try {
Date date = new SimpleDateFormat("dd/MM/yyy").parse(dataEmTexto);
dataNascimento1 = Calendar.getInstance();
dataNascimento1.setTime(date);
} catch(ParseException e) {
out.println("Erro de conversão da data");
return;
}
Contato contato = new Contato();
contato.setNome(nome);
contato.setSobrenome(sobrenome);
contato.setRg(rg);
contato.setCpf(cpf);
contato.setSexo(sexo);
contato.setDataNascimento1(dataNascimento1);
Cadastro dao = new Cadastro();
dao.adiciona(contato);
out.println("<html>");
out.println("<body>");
out.println("Contato " + contato.getNome() + " adicionado com sucesso");
out.println("</body>");
out.println("</html>");
}
}
Meu Objeto Dao
package br.com.cad.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Date;
import br.com.cad.dao.ConnectDb;
import br.com.cad.basica.Contato;
public class Cadastro {
private Connection connection;
public Cadastro() {
this.connection = new ConnectDb().getConnection();
}
public void adiciona(Contato contato) {
String sql = "INSERT INTO dados_cadastro(pf_nome, pf_ultimonome, pf_rg, pf_cpf, pf_sexo,pf_dt_nasc) VALUES(?,?,?,?,?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getSobrenome());
stmt.setString(3, contato.getRg());
stmt.setString(4, contato.getCpf());
stmt.setString(5, contato.getSexo());
stmt.setDate(6, new Date( contato.getDataNascimento1().getTimeInMillis()) );
stmt.execute();
stmt.close();
System.out.println("Contato adicionado.");
} catch(SQLException sqlException) {
throw new RuntimeException(sqlException);
}
}
}
Aqui o trecho do código html
<label>Data de nascimento</label>
<br>
<select id="birthDay" name="dataNascimento1">
<option selected="" value="">Dia</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select id="birthMonth" name="dataNascimento2">
<option selected="" value="">Mês</option>
<option value="1">janeiro</option>
<option value="2">fevereiro</option>
<option value="3">março</option>
<option value="4">abril</option>
<option value="5">maio</option>
<option value="6">junho</option>
<option value="7">julho</option>
<option value="8">agosto</option>
<option value="9">setembro</option>
<option value="10">outubro</option>
<option value="11">novembro</option>
<option value="12">dezembro</option>
</select>
<select id="birthYear" name="dataNascimento3">
<option selected="" value="">Ano</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
</select>
Como posso pegar os valores selecionados pelo usuário Dia<>Mês<>Ano<> e salvar no meu banco mysql: preciso converter? como posso resolver isso? e salvar no banco formatado da seguinte forma dd/mm/aaaa?