# Java > Interfaces Graphiques en Java > AWT/Swing >  JDateChooser et insertion d'une date dans une base de donnes

## ImBehoRE

Bonjour,

Je suis encore dbutant dans le dveloppement.
Je dveloppe un genre de formulaire qui doit renseigner la base de donnes.
Pour ma date j'utilise un composant de la librairie "JCalendar" sous format yyyy-MM-dd
Voici  quoi ressemble le "formulaire" :

Voici mon code pour le bouton "Confirmer" : 


```

```

Lors du clique me permettant dexcuter la requte, j'obtiens ceci dans la console : 



> Mon Feb 04 14:22:24 HST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
>     at mcappv3.DdeIntervAgent.ButtonConfirmerDemandeActionPerformed(DdeIntervAgent.java:260)
>     at mcappv3.DdeIntervAgent.access$000(DdeIntervAgent.java:19)
>     at mcappv3.DdeIntervAgent$1.actionPerformed(DdeIntervAgent.java:165)
>     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
>     at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
>     at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>     at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>     at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
> ...


L'erreur me renvoie sur cette ligne : 


```
pst.setDate(2, (java.sql.Date)(java.util.Date)ddate);
```

J'ai donc essay ceci avec les import qu'il faut : 


```
pst.setDate(2, (java.sql.Date) ddate);
```



```
pst.setDate(2, ddate);
```



```
pst.setDate(2, Date ddate);
```

Lorsque j'enlve cette ligne et que j'essaie, c'est cette ligne l que me renvoie l'erreur dans la console : 


```
pst.executeUpdate();
```

Comment puis-je faire pour que mon code et mon insertion de date dans ma base de de donnes fonctionnent ? 

Merci  ceux qui pourront m'aider.

----------


## ImBehoRE

J'ai rsolue mon problme, voici les changement effectuer dans mon code : 


```

```

Mais  peine rsolue que je me rend compte d'un nouveau problme, dans ma base de donnes j'obtient 1969-12-31 pour la date alors que j'ai saisie 2019-02-04. 
J'ai changer le format de ma date, mais rien ne change. 
Auriez vous une ide ?

----------


## wax78

Bien sure, la premire ide est de te dire de lire la javadoc a ce sujet  ::): 

getDate() qui est dprci depuis pas mal de temps ne renvoie pas ce que tu crois, mais le jour du mois, donc ce n'est pas tonnant que dans ta DB tu ais n'importe quoi.

Aussi il faudrait savoir dans ta DB c'est une DATE ou un STRING ? car dans le premier post tu fait setDate() puis aprs tu semble faire setString()

----------


## ImBehoRE

Bonjour, merci pour ta rponse




> Bien sure, la premire ide est de te dire de lire la javadoc a ce sujet


Merci, mais je t'avoue que je ne comprend pas comment je pourrais adapter "Calendar.get(Calendar.DAY_OF_MONTH) "  mon code et obtenir une date complte.
Le rsultat obtenue est le jour du  mois.. Genre uniquement le jour (de 1  31) ?




> getDate() qui est dprci depuis pas mal de temps ne renvoie pas ce que tu crois, mais le jour du mois, donc ce n'est pas tonnant que dans ta DB tu ais n'importe quoi.


J'ai du mal  comprendre ceci, cela veut dire que le rsultat obtenu n'est pas une date ?




> Aussi il faudrait savoir dans ta DB c'est une DATE ou un STRING ? car dans le premier post tu fait setDate() puis aprs tu semble faire setString()


Dans ma DB la date est du type DATE. Dans mon deuxime je fais un setString car j'ai fais ceci : 


```
SimpleDateFormat tdate = new SimpleDateFormat("yyyy-MM-dd");
```

Qui m'a permis de crer une variable tdate de type SimpleDateFormat("yyyy-MM-dd") puis une autre variable addDate qui rcupre la date obtenu grce  ceci : 


```

```

Voici le code avec les modifications : 


```

```

Je m'excuse si les termes que j'emploie ne sont pas explicite.. 

Merci encore pour ta rponse.

----------


## ImBehoRE

Merci pour ton aide, namoins je n'ai pas eu besoin d'utiliser la JAVADoc.

Voil mon code : 


```

```

Donc j'ai modifier ma requte et galement mis 


```

```

Avant la requte.

Je sais que c'est pas propre, mais cella fonctionne

----------

