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 :

Récupérer l'ensemble des valeurs de colonnes


Sujet :

JDBC Java

  1. #1
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut Récupérer l'ensemble des valeurs de colonnes
    Bonjour à tous, je fais une requette qui selectionne dans une base une colonne de date et une colonne de chiffres du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select mesdates, meschiffres 
    FROM matable 
    where mesdates BETWEEN '01/08/06' AND '31/08/06'
    GROUP BY mesdates
    J'aimerais pouvoir récupérer ces valeurs et les afficher dans un premier temps.
    et là déjà ca coince, comment récupérer à la fois les dates et chiffres et les afficher?.

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    je crois que ta requete est fausse (essaie pour vérifier)

    il te faut faire un TO_DATE (enfin selon ta bdd) pour pouvoir faire un between.

    la tu compares 2 chaines de caractères.

    Corrige ça déjà et on verra pour la suite.

  3. #3
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    je viens de tester avec dbvisualizer et ca fonctionne parfaitement, ca me sort une colonne avec les dates et une autre avec les chiffres...

  4. #4
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    par contre en effet il faut soit enlever le group by ou y spécifier le nom des deux colonnes

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

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par maniolo
    je viens de tester avec dbvisualizer et ca fonctionne parfaitement, ca me sort une colonne avec les dates et une autre avec les chiffres...
    Ben ça fonctionne parceque sous DBVisualizer tu as le bon format de date, le jour où tu auras un format de date différent (par exemple ddMMyyyy) ta requête sera totalement fausse ou même pire elle plantera, il est indispensable dans ton cas de faire un to_date et de ne jamais laisser la charge au moteur du SGBDR de proposer un format de date à ta place.

  6. #6
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    j'ai une classe qui me génère automatiquement les dates, elles sont comme ceci 'yyyy/MM/dd' et non pas '01/08/06'

  7. #7
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    J'essaye de n'afficher que la liste de mes chiffres mais cela me fait une exception de type java.lang.ClassCastException: com.informix.jdbc.IfxDecimal (je fais la requete sur une bd informix)
    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
     
    		Array array = null;
    		double[] dblTableau  =null;		
     
    resultSet = statement.executeQuery("select meschiffres from matable where mesjours  Between '2006/08/01' AND '2006/08/31'");
     
    		while(resultSet.next()){				
    			array = resultSet.getArray("matable ");				
    			Object tableau = array.getArray();
    			dblTableau  = (double[])tableau;
     
                              for(int i=0; i<dblTableau.length ; i++){
    			  System.out.println(dblTableau[i]);
    			  }   
    		}

  8. #8
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    sur le (double[]) l'exception ????

  9. #9
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    Non, ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array = resultSet.getArray("meschiffres");
    (je m'étais trompé c'est le nom de la colonne)

  10. #10
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    La colonne meschiffres est de quel type ?

    Il faut utiliser des requêtes préparées : PreparedStatement

  11. #11
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    meschiffres est de type decimal

  12. #12
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    et pourquoi tu ne fais pas getBigDecimal() ??

  13. #13
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    Bon j'arrive à afficher toute ma colonne (en faisant un getDouble), est-il possible de mettre dans une arraylist les valeurs de mes deux colonnes ?

  14. #14
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Oui

  15. #15
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    avec un seul Resultset???

  16. #16
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    J'ai pas trop compris ce que tu veux faire, mais on:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    List array = new ArrayList();
    Bigdecimal bd = null;
    Date date = null;
     
    resultSet =
      statement.
        executeQuery("select meschiffres, mesdates from matable where mesjours  between '2006/08/01' AND '2006/08/31'");
     
    while(resultSet.next()) {                
      bd = resultSet.getBigDecimal("meschiffres");
      date = resultSet.getBigDecimal("mesdates");
      array.add(new Object[]{bd, date});
    }

  17. #17
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    Ok j'arrive à afficher mes chiffres et les dates correspondantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(resultSet.getDouble("meschiffres")+ " " + resultSet.getDate("mesdates"));
    J'essayais de faire beaucoup plus compliquer

  18. #18
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    C'est parfait merci beaucoup encore

  19. #19
    Membre du Club
    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
    Points : 66
    Points
    66
    Par défaut
    Trop bien

  20. #20
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Mais, pour bien faire il aurait fallu faire comme suit:

    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
    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});
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/02/2017, 17h11
  2. Réponses: 7
    Dernier message: 18/01/2007, 12h13
  3. Récupérer l'ensemble des points d'une droite
    Par Psycho_Kwak dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 18/01/2006, 11h42
  4. Récupérer puis nommez des valeurs from un base MySQL
    Par nono3000 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 14/12/2005, 20h41
  5. Récupérer l'ensemble des infos d'un pc
    Par labisoumaniac dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/07/2005, 16h23

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