-
Date java et date mysql
Bonjour
Je travaille sur une couche JDBC, qui enregistre notamment en base des objets comportant des dates. La dites couche va de pair avec des tests JUnit, et je me suis retrouvé confronté à casse tête :
Faire java.util.Date myDate => colonne myDate de ma table mysql => java.util.Date myDate2
Avec bien sur myDate.equals(myDate2) vrai. Pour information, je passe par un preparedStatement.
J'ai beau bidouiller avec get/setDate, get/setTimestamp et les formats DATETIME et TIMESTAMP de mysql, je n'arrive pas à faire coller le tout.
Quelqu'un qui a déjà eu le cas de figure pourrait il me donner la marche à suivre svp ?
-
En JDBC, il faut travailler avec du java.sql.Date, java.sql.Time et java.sql.Timestamp.
-
En fait, mon problème vient du fait que les méthodes setDate, setTimestamp & co de PreparedStatement retranscrivent une date au format "MMJJAAAA HH:MM:SS" dans la requête SQL du preparedStatement. Du coup je perd les millisecondes dans l'insert/update, mon select me renvoie des info arrondies à la seconde, et l'equals de Date me renvoie faux à cause de cette imprécision.
A part zapper les comparaisons de date dans mes JUnit ou leur bricoler un equals imprécis, je vois pas trop de contournement possible là.
-
Je crois que c'est MySql qui stocke ses heures en secondes.