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 :

Mettre a jours une Date (java.sql.Date)


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Par défaut Mettre a jours une Date (java.sql.Date)
    Bonsoir,
    Comme le titre l'explique j'ai essayé de mettre a jours ma base de donnée avec la date courante,mais ca n'a pas marché !
    Voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                        java.util.Date now = new java.util.Date();
     
                        java.sql.Date NOW = new java.sql.Date(now.getTime());
    statement.executeUpdate("Update infosinscri Set DatePaiement = " + NOW + " where Cin =" + Cin)
    J'obient un date bizarre a la place d'aujourd'hui !
    voila ce que j'obtient ! :

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ce n'est pas comme ça (conversion en string) qu'on insère des dates en jdbc (ni la pluspart des données d'ailleurs). Utilisez des preparedStatements

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Par défaut
    J'ai fait ce que vous avez mentionné Tchize mais j'ai obtenu une Exception de Type ArrayOutOfBounds Exception dasn la ligne en rouge !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                        
    java.util.Date now = new java.util.Date();
    java.sql.Date NOW = new java.sql.Date(now.getTime());
                                        String req = "Update infosinscri Set DatePaiement = ?  where Cin = ?";
                                        PreparedStatement ps = con.prepareStatement(req);
                                        ps.setDate(9, NOW);
                                        ps.setInt(1, Cin);
                                        int exe = ps.executeUpdate();

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    tu a lu la javadoc ??

    ps.setDate(9, NOW);

    pourquoi a tu mis 9 ?

    idem pour
    ps.setInt(1, Cin);


    lis la javadoc tu vas comprendre pourquoi il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ps.setDate(1, NOW);
    ps.setInt(2, Cin);

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Par défaut
    Merci j'ai mal lu dans le début ...
    Mais un gros problème est posé !! j'ai tout essayé pour le résoudre toujours pas de solution !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.sql.Date NOW = new java.sql.Date(System.currentTimeMillis());
                                        String req = "Update infosinscri Set DatePaiement = ?  where Cin = ?";
                                        PreparedStatement ps = con.prepareStatement(req);
                                        ps.setDate(2, NOW);
                                        ps.setInt(1, Cin);
    Le résultat dans la BD est le suivant ! : 11/06/1905 !
    Est-ce normal ?
    J'ai même essayé avec un calendrier, puis avec la conversion d'un java.util.Date --> java.sql.Date .. et la solution que j'ai posté pour conclure .. toujours le même résultat ! Or je veut avoir la date système moi !

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comment est défini DatePaiement?
    Comment récupérez vous "11/06/1905" ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/07/2010, 12h13
  2. 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
  3. Manipulation de date : java.sql.Date & Calendar
    Par LeNovice dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 25/09/2007, 15h59
  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