Erro na inserção da data no banco de dados

4 respostas
Anderson_Carlos

Pessoal, boa noite…
Estou com um probliminha na inserçao no meu BD com a data.
Quando pesso pra inserir aparece no meu BD dessa forma " 0000-00-00 ".

Ela esta sendo formata em outra classe desse jeito

Date data = new Date();
            SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
            data = formatador.parse(jTextField2.getText());
            multa.setData(data);

e Sendo inserida no BD utilizando esse metodo.

public void InserirMultaProp(Multa multa){

this.Conectar();

try {
String inserir = "INSERT INTO multa (carro,infracao,data,vencimento,local,Obs,condutor) VALUES (?,?,?,?,?,?,?)";

                  smt = con.prepareStatement(inserir);
                  smt.setInt(1,multa.getCarro().getidCarro());
                  smt.setInt(2,multa.getInfracao().getidInfracao());

                  /*minha data esta sendo inserida ak*/
                  smt.setString(3,multa.getData()

                  smt.setString(4,multa.getVencimento());
                  smt.setString(5,multa.getLocal());
                  smt.setString(6,multa.getObs());  //pegar do combobox
                  smt.setInt(7,multa.getproprietario().getCpfProprietario());
                  //smt.setInt(7,multa.getproprietario().getCpfProprietario());
                  
                  smt.executeUpdate();
                  JOptionPane.showMessageDialog(null,"Multa Aplicada com Sucesso");
            }catch (Exception ex) {
                 JOptionPane.showMessageDialog(null,"Erro na insercao dos dados \n" + ex.getMessage());
            }
    }

Algem sabe como posso resolver esse problema?

4 Respostas

pmlm
smt.setDate(3,multa.getData());
Anderson_Carlos

Ainda nada…
No BD só aparece 0000-00-00

  • alguma sugestão??
gilmaslima

Sugestão quando vc for trabalhar com datas:

:arrow: Quando vc for exibir a data pro usuário (use Strings para formatar e exibir);

:arrow: Quando for fazer cálculos ou qualquer outra manipulação que não apareça para o usuário use java.util.Date;

:arrow: Quando usar essa data no banco de dados use java.sql.Date

Faça o seguinte mude o seu atributo multa mude para java.sql.Date;

Date data = new Date();
// se precisar exibir a data para o usuario use o SimpleDateFormat
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
data = formatador.parse(jTextField2.getText());

// aqui vc atribui o valor para sua variavel java.sql.Date
multa.setData(new java.sql.Date(data.getTime()));

e no seu Insert:

public void InserirMultaProp(Multa multa){
this.Conectar();
try {

String inserir = "INSERT INTO multa (carro,infracao,data,vencimento,local,Obs,condutor) VALUES (?,?,?,?,?,?,?)";

smt = con.prepareStatement(inserir);
smt.setInt(1,multa.getCarro().getidCarro());
smt.setInt(2,multa.getInfracao().getidInfracao());

/*minha data esta sendo inserida ak*/
smt.setDate(3,multa.getData())

smt.setString(4,multa.getVencimento());
smt.setString(5,multa.getLocal());
smt.setString(6,multa.getObs()); //pegar do combobox
smt.setInt(7,multa.getproprietario().getCpfProprietario());
//smt.setInt(7,multa.getproprietario().getCpfProprietario());

smt.executeUpdate();
JOptionPane.showMessageDialog(null,"Multa Aplicada com Sucesso");
}catch (Exception ex) {
JOptionPane.showMessageDialog(null,"Erro na insercao dos dados \n" + ex.getMessage());
}
}

Qualquer coisa posta ai

Anderson_Carlos

Vlw irmaum…
Funcionou!!!
Muito obrigado

Criado 5 de dezembro de 2010
Ultima resposta 8 de dez. de 2010
Respostas 4
Participantes 3