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 :

conversion Date : java.util.Date -> base de donnees (Date)


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Points : 8
    Points
    8
    Par défaut conversion Date : java.util.Date -> base de donnees (Date)
    Bonjour,
    J'ai un soucis de conversion de date pour inserer une date recuperee dans une page JSF et l'inserer dans une base MYSQL via un PreparedStatement (setDate)
    Je recupere une date via le composant inputCalendar (tomahawk ) en specifiant le format date "yyyy/MM/dd".
    Ensuite dans mon bean je recupere la date au format java.util.Date avec mon getter. J'ai essayer de transformer cette date au format java.sql.Date.
    Mais j'obtiens cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    javax.servlet.ServletException: java.lang.IllegalArgumentException: Cannot convert 1/17/10 12:00 AM of type class java.util.Date to class java.sql.Date
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)
    	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
    J'ai egalement essayer de recupere ma date au format String puis la convertir en java.util.Date via un SimpleDateFormat et la methode parse, mais cette fois ci j'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    javax.faces.el.EvaluationException: java.text.ParseException: Unparseable date: "Sat Jan 09 00:00:00 CET 2010"
    	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
    	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    	javax.faces.component.UICommand.broadcast(UICommand.java:315)
    	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:774)
    	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1261)
    	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
    	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
    Je sais que c'est une question recurente. mais je n'arrive pas a trouver mon erreur.
    Merci d'avance pour vos conseils.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Le problème n'est pas lié à JSF, peux tu nous montrer le code de ta requete d'insertion?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par moery Voir le message
    J'ai essayer de transformer cette date au format java.sql.Date.
    Mais j'obtiens cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    javax.servlet.ServletException: java.lang.IllegalArgumentException: Cannot convert 1/17/10 12:00 AM of type class java.util.Date to class java.sql.Date
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)
    	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
    Cette erreur m'a l'air, au contraire, due a l'absence de conversion entre les deux. Peux tu nous montrer le code que tu utiliser pour faire cette conversion entre java.util.Date et java.sql.Date?

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Merci pour vos reponses,
    Voici la partie de code contenant la conversion et l'insertion dans la base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private String dateStep;
    public static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    ...
    insertData = con.prepareStatement(
    	    		" INSERT INTO myTable SET "+
    	    		"idPLate=?,date=?,amplification=?," +
    	    		" amplificationNB=?,idCreator=4,creation=now()");
    ...
    java.util.Date d =  new java.util.Date();
    d= formatter.parse(dateStep);
    java.sql.Date  dd= new java.sql.Date(d.getTime());
    insertData.setDate(2,dd);

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pourquoi une String, normalement tomahawk calendar a déjà du te retourner un java.util.Date, tout ce que t'as a faire c'est le convertir en java.sql.Date => pas besoin de formatter dans ton code.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Merci tchize_!!
    En fait j'avais essayer de recuperer directement ma valeur avec le type "Date" comme je l'avais mentionne dans mon premier post.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot convert 1/11/10 12:00 AM of type class java.util.Date to class java.sql.Date
    Mais la tu m'as aiguille sur le fait que dans mon getter/setter j'avais mis le type de donnees "Date" et en modifiant Date par java.util.Date et ensuite en ne faisant que la conversion en java.sql.Date ca a fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    	public java.util.Date getDateStep(){
    		return dateStep;
    	}
    	public void setDateStep(java.util.Date dateStep){
    		this.dateStep=dateStep;
    	}
    Je pensais que le type par default lorsque l on utilisait Date etait le java.util.Date ... my mistake ...

    Encore merci beaucoup.

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

Discussions similaires

  1. Conversion de Java vers XML avec Smooks - Format de date
    Par gvarlet dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 29/07/2013, 17h12
  2. Passer d'un String à un objet Date java.util
    Par babolow dans le forum Langage
    Réponses: 1
    Dernier message: 08/06/2013, 19h48
  3. Problème de conversion de java.util.Date Object to a java.sql.Date Object
    Par amine1980 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 02/12/2011, 11h18
  4. Réponses: 0
    Dernier message: 12/12/2008, 14h16
  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