获取通过html表单发送的参数并保存在我的数据库中

时间:2013-07-02 17:03:01

标签: java jsp servlets dao

我的代码中有错误我不知道要解决它请帮助我:  我的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");
     StringBuilder finalDate = new StringBuilder("DataNascimento1")
.append("/"+request.getParameter("DataNascimento‌​2"))
.append("/"+request.getParameter("DataNascimento3"));

 try {  
     SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
     finalDate.toString(); 

 } 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);
        if ("Masculino".equals(contato.getSexo())) {  
         contato.setSexo("M");  
            } else {  
         contato.setSexo("F");  
        }  
     contato.setDataNascimento1(dataNascimento1); //error here ?????
     contato.setDataNascimento2(dataNascimento2); //error here ?????
     contato.setDataNascimento3(dataNascimento3); //error here ?????
 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>"); 

} 
}

我的对象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()) ); // i think there are error here i don't know to solve it ?????


            stmt.execute();  
            stmt.close();  
            System.out.println("Cadastro realizado com sucesso!.");  
        } catch(SQLException sqlException) {  
            throw new RuntimeException(sqlException);  
        }  
    }  
}

我的班级cadastro

 package br.com.cad.basica;

import java.util.Calendar;

public class Contato {

        private Long id;
        private String nome;
        private String sobrenome;
        private String email;
        private String endereco;
        private Calendar dataNascimento1;
        private Calendar dataNascimento2;
        private Calendar dataNascimento3;
        private String rg;
        private String cpf;
        private String sexo;
        public Long getId() {
            return id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getNome() {
            return nome;
        }
        public void setNome(String nome) {
            this.nome = nome;
        }
      ...getters and setters

我需要在我的mysql数据库中保存数据,但我对这个代码主要如何获取参数发送形式html组合框(1天为1,月为2,出生年份为3)有一些疑问我用StringBuilder finalDate连接...所以我的代码中有一些问题请帮帮我!

1 个答案:

答案 0 :(得分:0)

您的servlet代码中似乎没有定义:dataNascimento1dataNascimento2dataNascimento3

此外,与此无关,您没有使用SimpleDateFormater来解析finalDate字符串。你需要做这样的事情:

Date finalDateParsed = sdf.parse(finalDate.toString());