IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Date java et date mysql


Sujet :

JDBC Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut 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 ?

  2. #2
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    En JDBC, il faut travailler avec du java.sql.Date, java.sql.Time et java.sql.Timestamp.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    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à.

  4. #4
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Je crois que c'est MySql qui stocke ses heures en secondes.

Discussions similaires

  1. Conversion java.utils.Date / java.sql.Date
    Par devroot dans le forum Général Java
    Réponses: 4
    Dernier message: 02/04/2010, 00h26
  2. Réponses: 1
    Dernier message: 11/11/2007, 17h54
  3. [DATE] Changer format Date Java
    Par R1pToR dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/07/2007, 14h31
  4. Cast de java.util.DATE à java.sql.DATE
    Par mnemonic78 dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2007, 08h21
  5. de java.sql.Date à java.utile.Date
    Par Sniper37 dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 23/05/2006, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo