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 :

[DbUtils] Cast Dynamique


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [DbUtils] Cast Dynamique
    Bonjour,

    Dans le cadre de mes études je dois créer un jeu de classes pour communiquer avec une base de donnée et créer un sorte de mapping relationnel.

    J utilise DbUtils et je me suis servis du tutoriel de Christophe Jollivet ( http://christophej.developpez.com/tutoriel/api/dbutils/ )

    Ma question est la suivante, lorsqu on déclare une nouvelle classe qui recevra mes Beans, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //EleveBean est une classe preexistante
    for (int i = 0; i < lBeans.size(); i++) {
    			EleveBean eleve = (EleveBean) lBeans.get(i);
    			System.out.println("\t"+eleve.getNom()+" -> "+eleve.getAge());
    		}
    Est-il possible de "caster" eleve en n importe quelle class?comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i = 0; i < lBeans.size(); i++) {
    	 Class tmpClass = Class.forName(monNomDeClasse);
             Object eleve =  tmpClass.newInstance();
            eleve = lBeans.get(i);
    }
    Je me retrouve toujours a devoir "caster en dur" et je veux pas faire un énorme switch... donc je voulais savoir si il y avait une subtilité que je n aurais pas croisée :p .

    Merci d avance.

    Pierre

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 24
    Points
    24
    Par défaut
    L'exemple que tu présente n'est pas très fonctionnel.

    Mis à part ce détail, le seul moyen en java pour ne pas avoir à caster explicitement une référence est d'utiliser le généric introduit avec java 5.0.

    Seulement DbUtils n'a pas évolué dans le dépot subversion d'apache depuis 2006 et est écrit pour java 1.3.0. Donc pas de generic et donc pas de cast auto.

    Je suis en train de tenter de modifier le code de DbUtils pour lui faire supporter les généric mais il reste encore pas mal de boulo et je peut y consacrer que très peu de temps

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    A d accord, merci du renseignement, j ai n ai finalement pas utilise dbutils, je suis passé par des méthodes plus rébarbatives avec des BeanUtils...
    Ce qui aurait prit 5 lignes en prend maintenant bien plus mais bon ...

    Une dernière question, vu que tu as l air de bien connaître dbutils, si j avais pu "caster" a la volée mes mes beans, dbutils gere-t-il les objets complexes?
    Par exemple si dans ma base de donnée une table "personne" a une key qui se rapporte a une autre table(donc un autre bean) "classe", cela sera-t-il gérer?
    j en doute mais je pose la question :p

    Merci.

    Pierre

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 24
    Points
    24
    Par défaut
    Il n'y a aucune gestion des relations donc DbUtils ne peut retourner que des Beans composé de primitive + String + Object.

    Maintenant il est possible de créer son propre Handler. Toutefois si tu cherche un framework gérant la persistance de beans complexe, il préférable de s'orienter vers JPA ou Hibernate.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci, je vais essayer de continuer a faire un handler personnalise.
    je vais quand même refaire mon projet grâce a hibernate car il marchera sûrement mieux qu avec mon handler perso.

    Pierre

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Utilise plusieurs handlers. Pas besoin de se cantonner à un unique handler.

    tu as besoin d'une liste d'élèves ? Utilise un handler d'Eleve, avec un BeanList.

    Tu as besoin d'un seul cours ? Utilise un handler de Cours.

    J'utilise DbUtils depuis deux ans, ai transformé son code pour supporter les génériques et quelques autres modifications, et je n'ai rien à y redire. J'ai même créé mon petit système de persistence par dessus et je suis comblé. C'est bien plus léger qu'Hibernate, et je passe très peu de temps à "configurer" ces persistances. En tous cas, je n'ai pas ce fichu fichier XML à gérer.

Discussions similaires

  1. Cast "dynamique" depuis un fichier xml
    Par Arno83 dans le forum Langage
    Réponses: 2
    Dernier message: 26/02/2008, 18h56
  2. Casting Dynamique et l'inserer dans jComboBox ?
    Par ExSter dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 13/06/2007, 03h26
  3. Polymorphisme et cast dynamique
    Par vcoulon dans le forum C++
    Réponses: 16
    Dernier message: 21/03/2007, 14h03
  4. Cast dynamique d'un objet ?
    Par elitost dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2006, 10h43
  5. [DP][héritage]sous-casting dynamique
    Par Le prophete dans le forum Général Java
    Réponses: 4
    Dernier message: 20/08/2004, 11h56

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