2013-07-01 32 views
0

現在我有問題,我的理解執行如何保存通過表單發送的數據串接?

我的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(); 

... 

    StringBuilder finalDate = new StringBuilder("DataNascimento1") 
.append("/"+request.getParameter("DataNascimento‌​2")) 
.append("/"+request.getParameter("DataNascimento3")); 

try { 
    Date date = new SimpleDateFormat("dd/MM/yyyy"); //here there are error 
    finalDate.toString(); 

} catch(ParseException e) { 
    out.println("Erro de conversão da data"); 
    return; 
} 
Contato contato = new Contato(); 
    ?????????? 

我的對象道

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.setDate(6, new Date(contato.getDataNascimento1().getTimeInMillis())); 
stmt.execute(); 
      stmt.close(); 
      System.out.println("Cadastro realizado com sucesso!."); 
     } catch(SQLException sqlException) { 
      throw new RuntimeException(sqlException); 
     } 
    } 

我的班級Contato

package br.com.cad.basica; 

進口java.util.Calendar中;

公共類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; 
    } 
    public String getSobrenome() { 
     return sobrenome; 
    } 


... getters and setters... 

請幫我在我的代碼,以確定一些錯誤,並執行它來節省我的DB數據...

回答

0

你應該通過價值01,02, 03但不是1,2,3(幾天和幾個月)。檢查您的網頁表單和日期選擇值。

+0

我有錯誤: 消息Servlet執行拋出異常 說明服務器遇到內部錯誤,導致它無法完成此請求。 例外 javax.servlet.ServletException:Servlet的執行引發異常 根源 java.lang.Error的:未解決的編譯問題: dataNascimento1不能被解析爲一個可變 dataNascimento2不能被解析到一個變量 dataNascimento3不能被解析爲一個變量 br.com.cad.servlet.AddDados.service(AddDados.java:52) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) –

0
Date date = new SimpleDateFormat("dd/MM/yyyy"); //here there are error 

這是錯誤的聲明。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 

這不會引起問題。

+0

確定現在我的類是:... StringBuilder finalDate = new StringBuilder(「DataNascimento1」) .append(「/」+ request.getParameter(「DataNascimento 2」)) .append(「/」+ request.getParameter(「DataNascimento3」)); \t 嘗試SimpleDateFormat sdf = new SimpleDateFormat(「dd/MM/yyyy」); finalDate.toString(); (「Erro deConversãoda data」);}};}}};}}} catch(ParseException e){ } catch(ParseException e){ out.println return; } Contato contato = new Contato(); contato.setDataNascimento1(dataNascimento1); \t contato.setDataNascimento2(dataNascimento2); \t contato.setDataNascimento3(dataNascimento3);錯誤在這裏... –

+0

請避免在評論中粘貼代碼。請使用您的代碼編輯問題。 – pikrut