Data do Form pro Banco

Galera, na classe abaixo

package br.com.testedouglas

import java.sql.Connection;
import java.util.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class DbFuncionariosSingle {
public Connection con;
public DbFuncionariosSingle(Connection pcon) {
con = pcon;
}

    public boolean insereFuncionarios(String nome, String fone1, String fone2, String nascimento, Boolean ativo) throws ParseException{
    try{
       SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
       Date data = formatador.parse(nascimento); 
       PreparedStatement pstmt = con.prepareStatement("insert into funcionarios (nome_funcionario, fone1_funcionario, fone2_funcionario, nasc_funcionario, ativo) values (?,?,?,?,?)");
       pstmt.setString(1, nome); // Nome
       pstmt.setString(2, fone1); // Fone 1
       pstmt.setString(3, fone2); // Fone 2
       pstmt.setDate(4, data); //Data nascimento
       pstmt.setBoolean(5, ativo); // Ativo
       pstmt.executeUpdate();
       con.commit(); 
       return true;
       } catch (SQLException ex) {
        ex.printStackTrace();
        return false;
    }

}

}

Passei horas e horas mexendo, mas não consigo fazer a data funcionar!! alguém pode dar uma luz ???
Se eu setar o parâmetro 4 para null beleza, insere certinho, mas o parametro 4 também é necessário, como posso fazer para definir ele de forma eficiente ??!?!

Obrigado

Douglas

como esta definido o campo data na sua tabela Timestamp , Date , DateTime
e qndo vc gravar não use a java.util.Date e sim java.sql.Date
mas tente assim:


pstmt.setTimestamp(4, new java.sql.Timestamp(data.getTime()));

Declare o atributo Data do tipo String e tente assim:

pstmt.setString(4, data); //Data nascimento

ramilani12 e marceloplis Muito obrigado pelas respostas, utilizei o método indicado pelo ramilani12 e fechou na tampa!! marceloplis, como setString eu havia tentado, mas aí acusava erro que o campo esperado era Date e estava String… talvez com outro jdbc ou outro banco seja possivel, mas usando postgresql deu zebra… abraços!

Brigadão!! :smiley:

talvez ja tenha resolvido
mas eu criei esse metodo para formatar a data antes de inserir no banco, claro vc pode mudar os parametros de entrada e saida

public String ValidaDataTela(JTextField Ano){
try{
java.util.Date DATA = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);
String Valor_Data = Ano.getText().trim();
DATA = sdf.parse(Valor_Data);
sdf.applyPattern(“yyyy-MM-dd”);
Valor_Data =sdf.format(DATA);
return Valor_Data;
}catch(Exception ex){
JOptionPane.showMessageDialog(null, “Erro na formatação da Data para inserir na Base” ,“Informação”,JOptionPane.ERROR_MESSAGE);
return null;
}
}

Banco postgres