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 la valeur d'un champ dans une requête


Sujet :

JDBC Java

  1. #1
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut Récupérer la valeur d'un champ dans une requête
    Hello à tou(te)s,

    J'ai une question pour vous :
    Je dispose d'une requête SQL (sous forme de chaîne de caractères). Pour information, il ne peut s'agir que de requêtes de modifications (i.e. UPDATE, INSERT ou DELETE).
    Je dispose également d'un nom d'un champ (en réalité c'est le nom de la clé primaire).
    Moi, je voudrais une méthode qui, à partir de ces 2 informations, me retourne la valeur de mon champ.

    Prennons un exemple :
    Soit la requête SQL "insert into MA_TABLE (CHAMP_1, CHAMP_2, CHAMP_3) values ('val1', 'val2', 'val3')". Soit mon champ "CHAMP_2". La méthode en question devrait me retourner "val2" (puisque dans mon insertion, CHAMP_2='val2').

    Connaissez vous un moyen simple pour cela ? A la limite, ça ne me dérange pas si je dispose d'une méthode par type de requête (1 pour les INSERT, 1 pour les UPDATE, 1 pour les DELETE). Ou alors une librairie qui m'aiderait pour cela ?

    Merci de votre aide.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    voir JDBC (Java Data Base Connectivity ) , l'api officielle Sun, la Faq dvp, et les Tuto

    Courage
    "vaste programme"

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Je n'ai sans doute pas une grande connaissance de l'API de JDBC, mais il y a des outils pour parser une requête SQL dedans ? (parce qu'en gros, ce que je cherche à faire, c'est parser ma requête SQL)
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    la non je seche je connais rien qui se raproche de ca, a part les expression regulieres... Mais ca risque d'etre comique...

    bon courage
    "vaste programme"

  5. #5
    Membre habitué Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Points : 148
    Points
    148
    Par défaut
    Pour les operations de mises à jour, il est préférable d'utiliser les "prepared statements".

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    White Rabbit > Merci, je connais déjà ça (et je l'utilise d'ailleurs ).

    En fait, ce que je cherche à faire, c'est à chaque requête exécutée (hormis les SELECT), je veux pouvoir retrouver, en n'ayant que la requête en elle-même ainsi que le nom de la clé primaire (ou éventuellement des clés primaires), la valeur de cette clé.
    Autrement dit, l'exécution de la requête a déjà eu lieu, moi je veux juste en tirer quelques informations...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Euh je sais as moi, utiliser un parser destiné à cet effet

    me donne:
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  8. #8
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Tu peux aussi créer ton propre objet java héritant du preparedStatement ... et implémentant les méthodes dont tu as besoin...

    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
    24
    25
    26
    27
    28
    public class AdvancedPreparedStatement extends PreparedStatement {
         private Collection parameter;
     
         public AdvancedPreparedStatement(String requete){
              super(requete);
              //initialisation de la collection (ou du tableau si tu préfère un tableau)
              //(peut etre selon le nb de ? de la chaine de caractère ;))
              (...)
         }
     
         public void setString(int param, String value){
              //ajout de l'objet dans ta collection à la position <param>
              (...)
              super.setString(param,value);
         }
     
         //surcharger les autres méthodes d'ajouts de paramètres de la même manière
         (...)
     
         //rendre le paramètre
         public Object getParam(int param){
              //Tu chopes ce param a partir de ta collection ;)
              //"Difficulté" : Gérer les types primitifs pour les "wrapper" 
              //ou bien créer autant de méthodes que de type possible 
              //(selon les set que tu as surchargé !)
              (...)
         }
    }
    et voila, le tour est joué
    See you, space cowboy... and if you're satisfied, click on

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2012, 16h07
  2. [AC-2003] Récupérer la valeur d'un champ dans une table
    Par lex89 dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/05/2012, 10h35
  3. [AC-2000] Récupérer la valeur d'un champs dans une liste ou texte
    Par falco- dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/05/2009, 15h03
  4. Insertion de la valeur d'un champ dans une requête
    Par steph_p dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/09/2008, 17h21
  5. Changement valeur d'un champ dans une requête
    Par Mimile28 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/04/2005, 14h28

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