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

Collection et Stream Java Discussion :

JCalendar conversion de date en String


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut JCalendar conversion de date en String
    Bonjour,

    J'ai la date dans ma base Oracle au format String mais lorsque je fais une recherche dans mon interface Java, avec un JDateChooser, je n'obtiens aucun résultat. Il me donne ce message : "Caractère non numérique trouvé à la place d'un caractère numérique"


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     //  
     
     
     
    DefaultTableModel dtm =(DefaultTableModel)jTable2.getModel();     
    String date =  String.valueOf(jDateChooser1.getDate());
     
     
     
     
             try{                      
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","hr","ntic");
         Statement s= c.createStatement();
         ResultSet r=s.executeQuery("select first_name,last_name,HIRE_DATE from employees where HIRE_DATE = '"+date+"'");
       while(r.next()){
           dtm.addRow(new Object[]{r.getString("last_name"),r.getString("first_name"),r.getDate("HIRE_DATE")}); 
     
     
        }     
     
       r.close();
       s.close();
       c.close();
          } 
          catch (SQLException | ClassNotFoundException ex) {
              System.out.println(ex);
     
          }

  2. #2
    Membre éclairé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 320
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Peux tu préciser ce que tu cherches à faire exactement, cela peut aider les gens à mieux comprendre ton problème et de pouvoir t'aider.
    Merci.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    Citation Envoyé par Victor Vincent Voir le message
    Bonjour,
    Peux tu préciser ce que tu cherches à faire exactement, cela peut aider les gens à mieux comprendre ton problème et de pouvoir t'aider.
    Merci.
    dans la oracle j ai la date de type date je veux fais une interface qui cherche des emplois avec son date et dans mon interface j ai utilise un jDateChooser
    merci

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Bon je vais préciser ce qu'a déjà dit wax78 :

    1) jDateChooser1.getDate() va renvoyer la date sélectionnée.
    2) quand tu fais String.valueOf(jDateChooser1.getDate()) ça te donne la date au format texte avec un format spécial.
    exemple : Sat Oct 24 19:31:08 CEST 2015

    Manque de pot, ce format est incompréhensible par Oracle !
    Puisque tu fabriques ta chaîne SQL, on va continuer là-dessus sans utiliser de preparedStatement (qui aurait été la solution "approuvée")

    D'abord on met la date au bon format (mettons "YYYY-MM-DD") avec SimpleDateFormat.
    Ce qui donne le remplacement de ta ligne 6 par ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String date = sdf.format(jDateChooser1.getDate());
    Là ta variable date contiendra 2015-10-24 au lieu de Sat Oct 24 19:31:08 CEST 2015

    Re-manque de pot, cela ne suffit probablement pour Oracle. Il faut aussi lui convertir la date (eh oui !!!)
    Modifie ta requête à la ligne 15 comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet r=s.executeQuery("select first_name,last_name,HIRE_DATE from employees where HIRE_DATE = TO_DATE('"+date+"', 'YYYY-MM-DD')");
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Bon je vais préciser ce qu'a déjà dit wax78 :

    1) jDateChooser1.getDate() va renvoyer la date sélectionnée.
    2) quand tu fais String.valueOf(jDateChooser1.getDate()) ça te donne la date au format texte avec un format spécial.
    exemple : Sat Oct 24 19:31:08 CEST 2015

    Manque de pot, ce format est incompréhensible par Oracle !
    Puisque tu fabriques ta chaîne SQL, on va continuer là-dessus sans utiliser de preparedStatement (qui aurait été la solution "approuvée")

    D'abord on met la date au bon format (mettons "YYYY-MM-DD") avec SimpleDateFormat.
    Ce qui donne le remplacement de ta ligne 6 par ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String date = sdf.format(jDateChooser1.getDate());
    Là ta variable date contiendra 2015-10-24 au lieu de Sat Oct 24 19:31:08 CEST 2015

    Re-manque de pot, cela ne suffit probablement pour Oracle. Il faut aussi lui convertir la date (eh oui !!!)
    Modifie ta requête à la ligne 15 comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet r=s.executeQuery("select first_name,last_name,HIRE_DATE from employees where HIRE_DATE = TO_DATE('"+date+"', 'YYYY-MM-DD')");
    merci

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Si tu affiche la valeur

    String date = String.valueOf(jDateChooser1.getDate());

    Tu verras qu'elle n'est pas dans le bon format. Il faut surement la reformatter en adéquation avec le format dans la DB. Avec par exemple un SimpleDateFormat.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Conversion string to date
    Par Fanny23 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 27/01/2012, 00h24
  2. conversion de string en date
    Par Kropernic dans le forum VB.NET
    Réponses: 17
    Dernier message: 24/05/2011, 14h43
  3. Conversion de String en Date
    Par jojodu31 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/11/2008, 18h28
  4. conversion de string en date
    Par zandru dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/08/2008, 16h23
  5. conversion String en Date (parse trop permissif)
    Par ciloulou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 13/09/2004, 18h36

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