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 :

Lenteur pattern DAO


Sujet :

JDBC Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Par défaut Lenteur pattern DAO
    Bonjour à tous,
    pour faire simple, j'ai une table contrat contenant une dizaine de clé etrangères. Pour implémenter cela en java, j'utilise le pattern DAO (chaque classe de mon application possède un é DAO) et mon problème est le suivant :
    lors de l'appel de la fonction "findById" pour récupérer un contrat, je transforme les clés étrangères qu'il contient en objet en instanciant les classes DAO associées comme suit :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    public Contrat findById(int id) throws SQLException {
     
            String query = "SELECT * FROM contrat WHERE idcontrat = " + id + ";";
            ResultSet rs = null;
            Contrat c = null;
     
            try {
     
                statement = connection.createStatement();
                rs = statement.executeQuery(query);
                while(rs.next()){
     
                	TypeContrat tc =  new TypeContratDAO().findById(rs.getInt("idtypecontrat"));
                	Employe emp =  new EmployeDAO().findById(rs.getString("idemp"));
                	Phase ph = new PhaseDAO().findById(rs.getInt("idphase"));
                	Poste po = new PosteDAO().findById(rs.getInt("idposte"));
                	FiliereContrat fc = new FiliereContratDAO().findById(rs.getInt("idfiliere"));
                	CategorieContrat categ = new CategorieContratDAO().findById(rs.getInt("idcategorie"));
                	StatutContrat sta = new StatutContratDAO().findById(rs.getInt("idstatut"));
                	Salaire sa = new SalaireDAO().findById(rs.getInt("idsalaire"));
                	Signataire si = new SignataireDAO().findById(rs.getInt("idsignataire"));
                	EtapeContrat ec = new EtapeContratDAO().findById(rs.getInt("idetape"));
                	Filiale fil = new FilialeDAO().findById(rs.getInt("idfiliale"));
                	EtatContrat et = new EtatContratDAO().findById(rs.getInt("idetat"));
                	Avenant av = new AvenantDAO().findById(rs.getInt("idavenant"));
     
     
                	c = new Contrat(rs.getInt("idcontrat"),tc,emp,ph,po,fc,categ,sta,sa,si,ec,fil,et,av);
                }
            }
            catch (SQLException e) {
                System.out.println("Erreur SQL :" + e);
            }
            finally {
     
                DbUtil.close(rs);
                DbUtil.close(statement);
                DbUtil.close(connection);
            }
     
            return c;
        }
    Seulement voilà, je stocke tous ces contrats (il y en a plusieurs centaines) dans un tableau graphique de mon application, et le fait de multiplier les appels à la base de données (tous les "findById" de TypeContrat,Salaire,etc.. pour chaque contrat) rend le chargement du tableau très très lent et je ne sais pas comment y remédier.

    J'ai joint un diagramme de classes simplifié pour vous donner une meilleure idée de la structure de l'application.
    Merci d'avance pour vos retours,
    Cordialement, Benoit.
    Images attachées Images attachées  

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

Discussions similaires

  1. [DAO] Explication simple du design Pattern DAO
    Par zuzuu dans le forum Autres
    Réponses: 0
    Dernier message: 25/02/2009, 12h06
  2. [EJB3 Entity] Utilisation du pattern DAO ?
    Par damien77 dans le forum Java EE
    Réponses: 3
    Dernier message: 14/02/2009, 19h01
  3. integrer le pattern DAO
    Par questionneuse dans le forum JSF
    Réponses: 7
    Dernier message: 01/02/2008, 16h56
  4. [Plugin][Hibernate] Patterns DAO avec hybernate
    Par BarbapapaDK dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/03/2006, 09h53

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