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 :

probleme avec l'insertion de la date à la bd


Sujet :

JDBC Java

  1. #1
    Membre du Club Avatar de gnaoui_9999
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 103
    Points : 54
    Points
    54
    Par défaut probleme avec l'insertion de la date à la bd


    voila j'ai un prob lorsque j'éssaye d'envoyer le contenu d'une date de type JFormattedTextField a ma bd mysql j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException
    
    mon code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    
    MaskFormatter mf;
    try { mf = new MaskFormatter( "##/##/20##" ); mf.setPlaceholderCharacter('0'); JFormattedTextField ladate = new JFormattedTextField( mf ); ladate.addActionListener(new java.awt.event.ActionListener() { publicvoid actionPerformed(java.awt.event.ActionEvent e) { Date d=Date.valueOf(ladate.getText()); Connexion connect=new Connexion(); String requete="insert into base values("+d+")"; connect.MAJ(requete); }
    });
    merci de votre aide

  2. #2
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Ne connaissant pas très bien mysql, j'ai effectué une petite recherche et j'ai trouvé la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_to_date('champs_date_au_format_string', 'formattage souhaité')
    http://www.experts-exchange.com/Data..._20989630.html

    En espérant que cela puisse t'aider;

  3. #3
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Salut,
    Vérifie que tu as bien importé java.sql.Date et non pas java.util.Date ! Normalement après tu devrais pouvoir procéder comme tu fais.

    Si ça marche toujours pas, la plupart des bases de données gèrent les dates sous la forme YYYY-MM-DD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO tableDate VALUES('2006-09-29')
    Ca marche comme ça en PHP, peut être qu'en Java aussi. Le mieux serait quand même de récupérer le format de date géré par ta base, et de formatter ta date avant de l'insérer.

    @+

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Pourquoi ne pas utiliser un PreparedStatement ?

  5. #5
    Membre du Club Avatar de gnaoui_9999
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    à vous, en effet mysql accepte les valeurs de la date sous format '0000-00-00' alors moi ce que j'ai fait dans mon prog c que j'ai créé 3 combo (jour,mois,année) é j'ai déclaré une variable de type String comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    
    String ladate= ((String)
    annee.getSelectedItem() + "-" + (String) mois.getSelectedItem() + "-" + (String) jour.getSelectedItem());
    String requete="insert into base values('"+ladate+"')";
    et ca marche.

  6. #6
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Cool jsuis content si ça marche .
    Tu pourrais juste me dire si avec un objet java.sql.Data ça marche avec la méthode que tu faisais au début ? C'est pour ma culture générale ^^

  7. #7
    Membre du Club Avatar de gnaoui_9999
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 103
    Points : 54
    Points
    54
    Par défaut
    en effet j'ai importer java.sql.Date , le probleme été au masque de saisie, il fau qu'il soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mf = new MaskFormatter( "####-##-##" );
    pour que mysql accepte la valeur de la date.

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

Discussions similaires

  1. Probleme avec un insert
    Par Tomislav dans le forum JDBC
    Réponses: 3
    Dernier message: 09/11/2006, 15h17
  2. [MySQL] Probleme avec un INSERT INTO
    Par heruwenli dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/10/2006, 14h45
  3. Réponses: 3
    Dernier message: 18/09/2006, 20h55
  4. probleme avec le format de la date
    Par stan30160 dans le forum Access
    Réponses: 15
    Dernier message: 19/06/2006, 11h49
  5. [Dates] probleme avec mktime et interval entre dates
    Par steinfield dans le forum Langage
    Réponses: 7
    Dernier message: 18/05/2006, 12h47

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