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 :

Lire les données java.sql


Sujet :

JDBC Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut Lire les données java.sql
    Bonjour
    Je voudrais lire le résultat d'une requête via un index numérique sur les colonnes. Doit on passer par le type java.sql.array ou y a t-il une autre façon sachant que le format des données m'importe peu puisque c'est pour un formulaire html.
    Merci

  2. #2
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par Mengué georges
    Bonjour
    Je voudrais lire le résultat d'une requête via un index numérique sur les colonnes. Doit on passer par le type java.sql.array ou y a t-il une autre façon sachant que le format des données m'importe peu puisque c'est pour un formulaire html.
    Merci
    Tu as tout ce qu'il te faut avec l'interface ResultSet et ResultSetMetaData. Fais quelques recherches là dessus, tu devrais trouver pas mal de trucs

    ++

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    J'ai bien sruté avant de poser la question la classe en question mais je n'y ai trouvé que des méthodes concernant le format de la table et pas une methode permettant une extraction avec un index numérique.

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Je vois pas trop ce que tu veux dire par "extraction avec un index numérique". Il faut que tu utilise les méthode définit par l'interface Statement (méthode ExecuteQuery par exemple) et utiliser un ResultSet pour parcourir le résultat de ta requête

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Je cherche une methode pour écrire un code du type:
    result = rs.getXXX(1)+....+rs.getXXX(3)+...+rs.getXXX(n)
    comme avec php

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    JE ne sais pas ce que fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    result = rs.getXXX(1)+....+rs.getXXX(3)+...+rs.getXXX(n)
    que représente rs?

  7. #7
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    rs s ton resultSet en fait ton enregistrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    rs = exceuteQuery(sqll);
     
    tant que rs n'est pas le dernier faire
    resultat = rs.getInt(1) //sortir le premier champ
    enregistrement suivant
    fin tant que

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Pour ça OK mais mon pb si je me suis mal expliqué c'est que je cherchais un getXXX(int) générique pour extraire les données retournées sans me soucier du format du champ de la table (string,int,date,...).
    Ceci étant dit il est vrai qu'en PHP on fait un Array de la ligne extraite pour récupérer les valeurs donc il faut utiliser la classe java.sql.Array qui me retournera un tableau ... mais pas aussi simplement puisqu'on doit faire un Array de chaque colonne.

  9. #9
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    alors la je sais pas trop

    mais je te suggères d'aller faire un tour sur cette page ResultSet

    tu trouveras ton bonheur si il existe

    Allez bon courage

  10. #10
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Je pense qu'il faut que tu utilise un ResultSetMetaData qui sera la "description" de ton ResultSet. Tu le récupère comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ResultSetMetaData r=rs.getMetaData();
    pour chaque colonne tu peut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    switch (r.getColumnType(1))
    {
    case(Types.INTEGER ) : rs.getInt(1);
    case(Types.VARCHAR) : rs.getString(1);
    ...
    }

  11. #11
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Ou alors tout simplement faire un rs.getObject() ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Bien bien
    Revenons à nos moutons après une petite sortie au resto

    J'ai bien consulté la classe ResutSet mais que néni
    j'ai essayé un code du tutorial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        	 try{while(rs.next())
        		 {i++;
        		  Array tab = rs.getArray(i);
        		  Object tableau = tab.getArray();
        		  String[] val = (String[])tableau;
                      .....
        		 }
        	 }catch(SQLException e){...};
    mais toujours le même pb il faut caster les données
    ou alors faire comme dit guigui5931 qui finalement me semble la meilleure solution mais un peu lourde quant on triture pas mal de données. Elle permet d'être indépendante du format de la table mais autant de case que de type. Ca fait du code tout ça moi qui préfère lézarder...

    Dommage qu'un tableau au format variant n'existe pas.

  13. #13
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par schniouf
    Ou alors tout simplement faire un rs.getObject() ?
    Tu sais lire ? getObject te renvoie un Object : je crois qu'il n'y a pas mieux comme type "variant" !

    Tableau au format "variant" = new Object[/*taille*/] !

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Bonsoir schniouf

    Tu m'excuseras mais je t'avais strappé, je suivais mon idée et c'est vrai tu as raison c'est la solution.
    Quand j'aurai compris les principes fondamentaux et les mécanismes de java ça ira mieux car je me suis lancé dans un drôle de challenge.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2012, 09h29
  2. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  3. lire les données sur un port RS232
    Par xave dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2005, 16h40
  4. [VB+Lotus Notes] Lire les données d'une DB Lotus
    Par kenn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/08/2005, 15h21
  5. [CR] lire les données de gauche a droite
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 14/10/2004, 18h23

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