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

Servlets/JSP Java Discussion :

Conversion de données de type Date


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Conversion de données de type Date
    Salut,Merci bien de m'aider à corriger l'erreur sur mon code sur l'image ci-dessus:
    Nom : JSP.PNG
Affichages : 855
Taille : 30,0 Ko

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    oubli de point virgule ?

  3. #3
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    J'ai essayé ça, ça n'a pas marché§ !!

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par WIN76 Voir le message
    J'ai essayé ça, ça n'a pas marché§ !!
    C'est un peu vague "ça n'a pas marché". Mais je dirais qu'en plus du point-virgule qui manque, la déclaration de dategen aussi... en tout cas, on ne la voit pas.

  5. #5
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Au fait si je mets le point virgule le nombre d'erreur augmente, vous pouvez le constater sur l'image ci-dessous:

    Nom : jsp1.PNG
Affichages : 574
Taille : 36,1 Ko

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Déjà, si tu pouvais copier ton code en mode texte dans le message (entre balises CODE, avec le bouton ), ce serait plus pratique pour toi et pour nous.

    Ensuite, le fait que l'IDE détecte plus ou moins d'erreur ne veut pas dire grand chose : il essaye d'estimer à partir d'un code erroné quelles pourraient être les erreurs, mais il fait comme il peut avec un code qui est erroné, donc censé ne pas être parsable. Il peut également se passer qu'une erreur fasse que d'autres erreurs ne puissent pas être détectées. Ce qui est sûr c'est qu'il faut bien un ; à la fin de cette ligne dateGen = sdf.parse(DateNaiss);.

    Tu n'as toujours pas déclaré ta variable dategen, à priori.

  7. #7
    Expert éminent sénior
    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
    Points : 48 804
    Points
    48 804
    Par défaut
    Je rajoute que SimpleDateFormat ça prend un majuscule, que tu as déclaré deux fois NumSal et de types différents en plus, que NMlleSal n'existe pas et que si tu prenait la peine de cliquer sur les icones d'erreur ou de mettre ton curseur souris au dessus, tu verrais le message d'erreur qui t'explique pourquoi ce n'est pas bon.

  8. #8
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    voici tout mon code:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.sql.*"%>
    <%@ page import="java.util.Date"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>PREBANK</title>
    </head>
    <body>
    <%
      // definir les variables de connexion
      String url="jdbc:mysql://localhost:3307/prebank";
      String user="root";
      String psw="windows";
      Connection con=null;
      //definir le pilote
      try{
    	  Class.forName("com.mysql.jdbc.Driver");
    	  System.out.println("Driver compatible");
      }catch(ClassNotFoundException cnfe){
    	  System.out.println("Driver incompatible");
      }
      //creer une connexion
      try{
    	  con=DriverManager.getConnection(url,user,psw);
    	  if (con!=null) System.out.println("Connexion établie");
    	  else System.out.println("Connexion échouée");
      }catch(SQLException sqle){sqle.printStackTrace();}
     //recuperation de données du formulaire
     String NumSal=request.getParameter("NumSal");
     String NomSal=request.getParameter("NomSal");
     String PrenomSal=request.getParameter("PrenomSal");
     String NMlle=request.getParameter("NMlle");
     String ProfSal=request.getParameter("ProfSal");
     String AdrSal=request.getParameter("AdrSal");
     String NumTel=request.getParameter("NumTel");
     String DateNais=request.getParameter("DateNais");
     //convertir
     int Numsal=Integer.parseInt(NumSal);
     java.util.Date dategen=null;
     SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
    		 dategen=sdf.parse(DateNais);
    		 java.sql.Date dateSQL=new java.sql.Date(dategen.getTime());
     out.print("<p>"+NumSal+"</p>");
     out.print("<p>"+NomSal+"</p>");
     out.print("<p>"+PrenomSal+"</p>");
     out.print("<p>"+NMlle+"</p>");
     out.print("<p>"+ProfSal+"</p>");
     out.print("<p>"+AdrSal+"</p>");
     out.print("<p>"+NumTel+"</p>");
     out.print("<p>"+DateNais+"</p>");
     //envoi de données dans la table salarie
     PreparedStatement pst=null;
     pst=con.prepareStatement("insert into salarie values(?,?,?,?,?,?,?,?)");
     pst.setString(1,NumSal);
     pst.setString(2,NomSal);
     pst.setString(3,PrenomSal);
     pst.setString(4,NMlle);
     pst.setString(5,ProfSal);
     pst.setString(6,AdrSal);
     pst.setString(7,NumTel);
     pst.setString(8,DateNais);
     int n=pst.executeUpdate();
     System.out.println("Un salarié ajouté !");
     con.close();
     this.getServletContext().getRequestDispatcher("/ajouter.jsp").forward(request,response);
    %>
    
    
    </body>
    </html>

  9. #9
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    si j'exécute tomcat m'affiche ce message:SimpleDateFormat cannot be resolved to a type

  10. #10
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    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
    //recuperation de données du formulaire
     String DateNais=request.getParameter("DateNais");
    
     java.util.Date dategen=null;
     SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");//comme tu insères dans une base de données tu dois avoir un format conforme à ton SGBD comme ça "yyyy-MM-dd"
    
    		 dategen=sdf.parse(DateNais);
    		 java.sql.Date dateSQL=new java.sql.Date(dategen.getTime());
    
     
     out.print("<p>"+DateNais+"</p>");//ici tu peux afficher l'une des 2 variables à savoir  DateNais ou dateSQL mais saches que la première est vue comme un String et la 2ème comme une date 
     //envoi de données dans la table salarie
     PreparedStatement pst=null;
     pst=con.prepareStatement("insert into salarie values(?,?,?,?,?,?,?,?)");
    
     pst.setDate(8,DateNais);//en supposant que ton champ est de type date,c'est cette variable que tu dois mettre "dateSQL" et nom "DateNais" et setDate à la place de setString

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par WIN76 Voir le message
    si j'exécute tomcat m'affiche ce message:SimpleDateFormat cannot be resolved to a type
    Il manque l'import de java.text.SimpleDateFormat.

  12. #12
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Et Au passage,je dirai ce n'est pas une bonne pratique de procéder directement au parsing d'une date(sans contrôle) car si par inadvertance l'on soumets son formulaire sans renseigner ce champ(donc valeur null) une exception de type NullPointerException est levée ou bien si l'on entre un format incorrect(par exemple 15-12-04) une exception de type ParseException.

  13. #13
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Merci l'erreur a disparu mais tomcat m'affiche ceci:

    Nom : jsp2.PNG
Affichages : 493
Taille : 25,9 Ko

  14. #14
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    On ne voit pas la totalité du message d'erreur.Dans tout le cas,maintenant l'erreur se trouve à la ligne 40 de ta JSP.
    Si l'erreur persiste envoies l'intégralité du message d'erreur et si possible celui de la console.

  15. #15
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    sur mon code ci-dessus tomcat declare l'erreur à partir de PreparedStatement pst=null; :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.sql.*"%>
    <%@ page import="java.text.SimpleDateFormat"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>PREBANK</title>
    </head>
    <body>
    <%
      // definir les variables de connexion
      String url="jdbc:mysql://localhost:3307/prebank";
      String user="root";
      String psw="windows";
      Connection con=null;
      //definir le pilote
      try{
              Class.forName("com.mysql.jdbc.Driver");
              System.out.println("Driver compatible");
      }catch(ClassNotFoundException cnfe){
              System.out.println("Driver incompatible");
      }
      //creer une connexion
      try{
              con=DriverManager.getConnection(url,user,psw);
              if (con!=null) System.out.println("Connexion établie");
              else System.out.println("Connexion échouée");
      }catch(SQLException sqle){sqle.printStackTrace();}
     //recuperation de données du formulaire
     String NumSal=request.getParameter("NumSal");
     String NomSal=request.getParameter("NomSal");
     String PrenomSal=request.getParameter("PrenomSal");
     String NMlle=request.getParameter("NMlle");
     String ProfSal=request.getParameter("ProfSal");
     String AdrSal=request.getParameter("AdrSal");
     String NumTel=request.getParameter("NumTel");
     String DateNais=request.getParameter("DateNais");
     //convertir
     int Numsal=Integer.parseInt(NumSal);
     java.util.Date dategen=null;
    SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
                     dategen=sdf.parse(DateNais);
                     java.sql.Date dateSQL=new java.sql.Date(dategen.getTime());
     out.print("<p>"+NumSal+"</p>");
     out.print("<p>"+NomSal+"</p>");
     out.print("<p>"+PrenomSal+"</p>");
     out.print("<p>"+NMlle+"</p>");
     out.print("<p>"+ProfSal+"</p>");
     out.print("<p>"+AdrSal+"</p>");
     out.print("<p>"+NumTel+"</p>");
     out.print("<p>"+DateNais+"</p>");
     //envoi de données dans la table salarie
     PreparedStatement pst=null;
     pst=con.prepareStatement("insert into salarie values(?,?,?,?,?,?,?,?)");
     pst.setString(1,NumSal);
     pst.setString(2,NomSal);
     pst.setString(3,PrenomSal);
     pst.setString(4,NMlle);
     pst.setString(5,ProfSal);
     pst.setString(6,AdrSal);
     pst.setString(7,NumTel);
     pst.setString(8,DateNais);
     int n=pst.executeUpdate();
     System.out.println("Un salarié ajouté !");
     con.close();
     this.getServletContext().getRequestDispatcher("/ajouter.jsp").forward(request,response);
    %>
     
     
    </body>
    </html>

  16. #16
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Dans ta requête pst=con.prepareStatement("insert into salarie values(?,?,?,?,?,?,?,?)"); tu dois mettre les champs de la table avant les valeurs insert into salarie(nom des champs) values(?,?,?,?,?,?,?,?);.
    En plus peux-tu nous dire l'importance de cette conversion int Numsal=Integer.parseInt(NumSal) et celle ci java.sql.Date dateSQL=new java.sql.Date(dategen.getTime())?

  17. #17
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    int Numsal=Integer.parseInt(NumSal): c'est pour convertir NumSal en numérique

  18. #18
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Oui, enfin, tu convertis NumSal en int dans la variable Numsal, mais tu n'utilises jamais Numsal : je suppose que c'est le sens de la question de @Kasko. A quoi ça sert, si tu ne t'en sers pas. Au passage, évite de faire des noms de variables différents sur la casse d'un caractère (au mlieu du nom en plus) : c'est le meilleure moyen de s'emmeller les pinceaux et de ne pas comprendre un truc qui marche pas.

  19. #19
    Membre à l'essai Avatar de WIN76
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    oui merci je ferai de ça mon habitude.

Discussions similaires

  1. API pour Conversion de données de type comp-3(Cobol)
    Par Kirou dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 01/05/2012, 19h35
  2. Réponses: 6
    Dernier message: 12/07/2010, 16h38
  3. Réponses: 2
    Dernier message: 30/11/2008, 21h10
  4. Réponses: 8
    Dernier message: 02/09/2008, 14h28
  5. Réponses: 13
    Dernier message: 30/11/2006, 14h00

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