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

Langage Java Discussion :

[Calendar et les dates] le tps qu'il fait, le tps qui passe


Sujet :

Langage Java

  1. #1
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut [Calendar et les dates] le tps qu'il fait, le tps qui passe
    salut a tous !

    bon c'est vrai j'ai jamais aime gerer les dates mais dans mon appli je suis bien obliger de m'y contraindre, j'ai compris je pense depuis mon precedent post sur ce sujet la diff entre date et calendar mais voila je continu a galerer pour inserer lors d'une creation une date de creation de l'objet, mysql ou java ne voulant rien savoir. alors please Help !! ou je vais passer le nouvel an a l'azile

    ---------------
    CONTEXTE
    ---------------
    je resume, je fais une couche DAO sur un serveur MySQL utilisant le driver JDBC connector/J 3.1.6 et tout fonctionne sauf les dates qui me retourne systematiquement une exception.

    ainsi dans chaque table j'ai un champs credate java inscrit au moment de l'insert la date et l'heure de creation de l'objet (decompose) sur la base.

    dans la base ce champs est tjs Not Null.

    le champs date, comme toute les autre propriéte de mon objet sont gerer dans des java bean nomme tjs XXXXInfo()

    c'est une classe DAO qui gere l'implementation pour MySQL via des PreparedStatement, les requete etant ecrite en dure dans des constante statique en debut de fichier...

    --------------
    CODE
    --------------
    dans le java bean :
    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
     
              ....
    	private String videoclient;
    	private String website;
    	private Date credateclient;
     
             .... (constructeur surcharge)
    	this.website = website;
    	this.credateclient = credateclient;
            ..... (getter et setter)
     
    		public Date getCredateclient() {
    			return credateclient;
    		}
     
    		public void setCredateclient(Date credateclient) {
    			this.credateclient = credateclient;
    		}
    dans le dao

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    			//insertion de la date de creation (format Long --> timestamp since EPOCH)
    			if (info.getCredateclient() != null) {
    				calendar = new GregorianCalendar();
    				ps.setDate(16,new Date(calendar.getTimeInMillis()));
    			} else {
    				calendar = new GregorianCalendar();
    				//calendar.setTime(info.getCredateclient());
    				ps.setDate(16,new Date(calendar.getTimeInMillis()));
    			}
    ----------------------
    Mon Probleme
    --------------------

    -
    java.lang.ClassCastException: java.sql.Date
    at sun.cne.msp.client.DAO.MySQLclientDAO.load(MySQLclientDAO.java:280)
    at sun.cne.msp.client.DAO.MySQLclientDAO.findAll(MySQLclientDAO.java:502)
    at sun.cne.msp.Start.main(Start.java:113)
    pardon pour la longueur mais je veux etre precis, j'execute cela depuis un main() de test. j'ai tous le temps des pb entre util.date et sql.date et les long et les calendar y'a toujours un autre endroit ou ca bloque !!


    comment faire ???
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: [Calendar et les dates] le tps qu'il fait, le tps qui pa
    Salut,

    Citation Envoyé par wdionysos
    j'ai tous le temps des pb entre util.date et sql.date (...)
    Cela semble encore être le cas...
    Avec JDBC il faut toujours utiliser java.sql.Date, donc vérifie bien ton code

    a++

  3. #3
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    ok adiGuba,

    hier deja j'ai pris mes dispositions, en passant tous les type de date de mes javabeans (les objet representant chaque table a java.sql.Date)

    le pb c'est qu'apres dans la methode create qui place un objet dans la table (ici client) ca se complique toute les methode de util.date etant deprecated.

    j'ai donc utiliser un calendar mais je trouve que ce que j'ai fait tiens plus du bricolage et en plus ca marche pas, en resume je creer un calendrier pour le convertir en lond et faire une date util que je cast en sql date.

    il doit y avoir + simple

    pourquoi il ont supprimer le new date() qui s'initialisait avec la date et le temps actuelle ?
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  4. #4
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    voici la liste de mes imports dans mon dao
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Types;
    import java.sql.Date;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.GregorianCalendar;
     
    import org.apache.log4j.Logger;
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  5. #5
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    j'ai toujours soit un
    le constructeur date(Object) n'est pas definit
    et si je le caste en Long pour obtenir un temps epoch en miliseconde pour construire une Date sql j'ai un
    le constructeur date(Long) n'est pas definit
    je deviens fou
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  6. #6
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    poutant si je me refere a la doc officielle alors

    Constructor Summary
    Date(int year, int month, int day)
    Deprecated. instead use the constructor Date(long date)
    Date(long date)
    Constructs a Date object using the given milliseconds time value.
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

  7. #7
    Membre habitué Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Points : 189
    Points
    189
    Par défaut
    pour la partie recherche le dao a l'air d'accepter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //recuperation du temps epoch en milisecondes et construction de la date
    			info.setCredateclient(
    					new java.sql.Date(
    							((Long)(rs.getObject("credateclient"))).longValue()
    							));
    alors sur le meme principe dans ma methode create(javabeanInfo) je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (info.getCredateclient() != null) {
    				//calendar = new GregorianCalendar();
    				//ps.setDate(16,new Date(calendar.getTimeInMillis()));
    				ps.setDate(16,(new java.sql.Date(getCredateclient().longValue())));
    			} else {
    ou est alors mon erreur !! comment peut ton faire mieux avec des calendar par exemple ??????????

    plus personne pour cette annee !!

    me laisser pas cette angoisse pour le reveillons svp

    WDionysos
    Je ne voudrais pas faire partie d'un club qui voudrait m'avoir moi pour membre.... [Grouchot Marx]
    Mais en tant que Marxiste, je playdoye pour le travail communautaire. C'est un paradoxe olympien ! Comprend qui peut !!!

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

Discussions similaires

  1. Calendar désactiver les dates
    Par camer12 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/05/2011, 11h56
  2. Réponses: 1
    Dernier message: 30/01/2008, 10h16
  3. pb avec les date et les calendar
    Par gloglo dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/04/2007, 18h21
  4. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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