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 :

sql.Date vs util.Date


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 157
    Par défaut sql.Date vs util.Date
    Bonjour à tous !
    Je reprends mon post précédent que j'ai mis en résolu
    thibaut ma suggéré une maniere propre de résoudre mon probleme, cependant il semblerait que certaine méthode fonctionne avec sql.Date et d'autre avec util.Date
    Si j'essaye le code ci-dessous en utilisant sql.Date (qui fonctionne avec PreparedStatement) j'ai des erreurs lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Date start = format.parse("2006/08/01");
    (qui fonctionne avec SimpleDateFormat, propre à util.Date.) j'ai essayé de casté, mais cela ne fonctionne pas....
    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
     
    PreparedStatement ps = null;
    List array = new ArrayList();
    Bigdecimal bd = null;
    Date date = null;
    SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
    Date start = format.parse("2006/08/01");
    Date end = format.parse("2006/08/31");
     
    ps =
      connection.
        prepareStatement("select meschiffres, mesdates from matable where mesjours between ? AND ?");
     
    ps.setDate(1, start);
    ps.setDate(2, end);
     
    resultSet = ps.executeQuery();
     
    while(resultSet.next()) {                
      bd = resultSet.getBigDecimal(1);
      date = resultSet.getDate(2);
      array.add(new Object[]{bd, date});
    }

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    N'utilises que util.Date vu que sql.Date hérite de util.Date tu peux parfaitement mettre une sql.Date dans une util.Date

  3. #3
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Ce qui à mon avis est faux puisque SimpleDateFormat renvoie une java.util.Date et un PreparedStatement.setDate() nécessite une java.sql.Date et tu ne peux en aucun cas dans ce cas particulier caster de java.util.Date à java.sql.Date.

    C'est l'inverse ici qu'il faut mettre: mettre une java.util.Date dans une java.sql.Date

    Donc:
    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
     
    PreparedStatement ps = null;
    List array = new ArrayList();
    Bigdecimal bd = null;
    java.sql.Date date = null;
    SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
    java.sql.Date start = new java.sql.Date(format.parse("2006/08/01").getTime());
    java.sql.Date end = new java.sql.Date(format.parse("2006/08/31").getTime());
     
    ps =
      connection.
        prepareStatement("select meschiffres, mesdates from matable where mesjours between ? AND ?");
     
    ps.setDate(1, start);
    ps.setDate(2, end);
     
    resultSet = ps.executeQuery();
     
    while(resultSet.next()) {                
      bd = resultSet.getBigDecimal(1);
      date = resultSet.getDate(2);
      array.add(new Object[]{bd, date});
    }
    Ce qui devrait résoudre le problème...

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    je ne parlais pas de caster mais je pensait plutôt à qualquechose dans ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.util.Date d = new java.sql.Date();
    Et en suite tu manipules d comme tu veux

  5. #5
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    C'est ma réponse, cf ci-dessus.

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Citation Envoyé par thibaut

    C'est l'inverse ici qu'il faut mettre: mettre une java.util.Date dans une java.sql.Date
    Tu en es sûr, car ici java.util.Date est la classe mère et tu ne peux pas stocker une classe mère dans une classe fille...
    Principe de base de l'OO...

    Essaies de compiler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.sql.Date s= new java.util.Date();
    tu risques d'avoir quelques soucis

  7. #7
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Oui c'est pour ça que je dis que c'est impossible.

  8. #8
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    C'est juste que la phrase que tu a écrit était un peu trendancieuse à ce niveau là...

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

Discussions similaires

  1. [XL-2007] couleur cellule date differente si date passee, ou date du jour
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/03/2011, 08h24
  2. Réponses: 5
    Dernier message: 06/01/2010, 11h24
  3. [SQL] Bizzare: pb de date sur requete -> dates fr interdit en rq!
    Par vodiem dans le forum Requêtes et SQL.
    Réponses: 18
    Dernier message: 10/04/2008, 15h30
  4. Conflit entre java.util.Date et class java.sql.Date
    Par vonitiana dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2006, 11h43
  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