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 averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    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 confirmé 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 : 38
    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
    Points : 474
    Points
    474
    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 averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    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 chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    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
    Points : 2 232
    Points
    2 232
    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
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    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 chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    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
    Points : 2 232
    Points
    2 232
    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?
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  7. #7
    Membre éclairé 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
    Points : 868
    Points
    868
    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
    Plzzz pas de questions par MP.

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    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 éclairé 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
    Points : 868
    Points
    868
    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
    Plzzz pas de questions par MP.

  10. #10
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    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
    Points : 2 232
    Points
    2 232
    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);
    ...
    }
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  11. #11
    Membre confirmé 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 : 38
    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
    Points : 474
    Points
    474
    Par défaut
    Ou alors tout simplement faire un rs.getObject() ?

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    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 confirmé 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 : 38
    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
    Points : 474
    Points
    474
    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 averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    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