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 :

Accès a une propriete protected depuis un objet Field


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Accès a une propriete protected depuis un objet Field
    Bonjour,

    Je débute en JAVA, je dois dévelopé une application avec accet à une BD. J'ai donc créé des javaBeans en équivalance avec mes tablas.
    Pour effectuer l'ordre update et afin de cree du code generique, je souhaite passe a une fonction l'objet a metre a jour ainsi que le champs a metre a jour et le champs pour la condition WHERE de la requette SQL.
    Mais seulement tous les champs dans mes javaBeans sont en private et donc innaccessible par l'intermediaire de l'objet Field. Il y aurai-t-il une autre solution ?

    Pour info j'ai egalement poste une discution dans
    Forum des developpeurs, general Developpement, quel schemat pour manipule une table BD depuis un objet ?
    voici le lien.
    http://www.developpez.net/forums/sho...d.php?t=452048

    je m'excuse au pres de vous mais j'ai egalement des problemes de config clavier. cela explique pourquoi il n'y a pas d'accent.

    je sais pas si ma discution est bien place dans le sens ou elle ne traite pas directement des problemes de connection, ce pendant je pense que la plus part d'entre vous ont ete confronte a ce genre de problemes.

    Cordialement
    JV

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Il est possible d'accéder à un Field qui à une visibilité private ou protected en utilisant la méthode setAccessible(). Cependant cela peut lever une exception si un SecurityManager protège cet accès.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object object = ...;      // objet auquel le Field appartient
    Field objectField = ...;    // field auquel on veut accéder
    objectField.setAccessible(true);
    Object value = objectField.get(object);
    Une autre solution pour lister les attributs d'un objet, plus propre, mais qui nécessite que chaque attribut possède un accesseur est d'utiliser l'introspection.

    Exemple listant les attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Object object = ...;      // objet auquel on veut accéder
    BeanInfo info = Introspector.getBeanInfo(object.class);
    for(PropertyDescriptor descriptor : info.getPropertyDescriptors()) {
        String attributeName = descriptor.getName();
        Method readMethod = descriptor.getReadMethod();
        Object value = readMethod.invoke(object);
        System.out.println(attributeName + " = " + value.toString());
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Sinon tu pourrais peut-être te tourner vers une API tel que EoD SQL qui fait exactement cela...

    a++

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 37
    Points
    37
    Par défaut ça marche avec l'introspection.
    Merci à le y@m's pour la solution d'introspection, aprés quelques problémes lié aux import, j'ai réussi a botenir ce que je voulais.

    J'essaierai dans un deuxiéme temps la avec l'API EoD SQL dont adiGuba m'a parlé.

    Sinon j'ai cherché sur les tutoriel mais je n'avias rien touvé. enfin merci beaucoup de votre aide.

    Cordialement
    JV

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

Discussions similaires

  1. Quel schéma pour manipuler une table BD depuis un objet ?
    Par caesarvanou dans le forum Design Patterns
    Réponses: 2
    Dernier message: 19/12/2007, 09h29
  2. Réponses: 5
    Dernier message: 13/11/2006, 18h15
  3. Réponses: 4
    Dernier message: 15/03/2006, 12h33
  4. Suppresion d'une feuille Excel depuis acces
    Par Australia dans le forum Access
    Réponses: 5
    Dernier message: 02/02/2006, 09h08

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