Enviar data para banco Mysql

3 respostas
javamysql
U

Pessoal não estou conseguindo converter data para enviara para o banco (MySQL).
No meu form tenho jformattedtextfield para receber a data do sistema, para isso logo abaixo da declaração initComponent tenho:

jtxtData.setText(new SimpleDateFormat("dd/MM/yyyy").format(new Date(System.currentTimeMillis())));

O meu código sql para inserir na classe MANUTENCAOSQL : 
public void adiciona (Cliente v1) throws SQLException
{
String sql="insert into cliente(codcli,data_nasc,nome,endereco) value(?,?,?,?)";
PreparedStatement stmt= conecta.prepareStatement(sql);
stmt.setInt(1,v1.getCodcli());
stmt.setDate(2,(java.sql.Date) (v1.getData_nasc()));
stmt.setNome(3,v1.getNome));
stmt.setendereco(4,v1.getEndereco());
stmt.execute();
stmt.close();
}
   
}

No meu form criei um método para cadastro:
private void Cadastro()
    {
             try
             {
        Clientes c = new Clientes();
        c.setCodcli(Integer.parseInt(jtxtcodcli.getText()));
      //  c.setData_nasc(jtxtData.getText()));
        c.setNome((jtxtnome.getText()));
        c.setEndereco(jtxtendereco.getText()));
       
            MANUTENCAOSQL Dados = new MANUTENCAOSQL();
            Dados.adiciona(c);
        }
        catch (SQLException ex)
        {
        JOptionPane.showMessageDialog(null,ex);
    }
    }

Está com erro na linha c.setData_nasc(jtxtData.getText());

Se alguém puder ajudar.

3 Respostas

Jonathan_Medeiros

Boa tarde @UserJava1.

Tente utilizar da seguinte maneira:

> c.setData_nasc(String.valueOf(jtxtData.getText()));

boa sorte, abraços!

bruno_souza_picinini

Aconselho o uso de JDateChooser

drsmachado

Você está fazendo isso:
stmt.setDate(2,(java.sql.Date) (v1.getData_nasc()));
errado:
Tente assim: stmt.setDate(2, new java.sql.Date(v1.getData_nasc().getTime())); desde que isso v1.getData_nasc()seja do tipo java.util.Date.
Outro detalhe, evite _ para concatenar nomes de atributos, métodos e classes. O Java possui a especificação JavaBeans que sugere que os nomes compostos sigam o padrão camelCase, neste caso, ficaria melhor assim: v1.getDataNasc();.

Criado 6 de novembro de 2016
Ultima resposta 7 de nov. de 2016
Respostas 3
Participantes 4