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

Persistance des données Java Discussion :

A quoi sert un DAO exactement ?


Sujet :

Persistance des données Java

  1. #1
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut A quoi sert un DAO exactement ?
    Bonjour,

    J'ai lu que le pattern DAO permet de centraliser les mécanismes de mapping et de prévenir un changement éventuel de système de stockage de données... Honnêtement, j'ai pas bien saisie la notion de prévenir un changement éventuel de système de stockage de données, parce que je me demande c'est quoi la relation qui existe entre les classes DAO et le changement du SGBD? si je vais changer en terme de requêtes, pourquoi ne pas le faire directement dans la méthode qui existe dans la classe POJO?

    Qu'est ce que je dois changer dans la DAO si je change ma base? en quoi il est bénéfique le DAO?

    Pouvouez-vous m'expliquer par des simples exemples?

    Merci pour votre aide!

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,
    un POJO (JavaBean) devrait normalement représenter uniquement une table de ta base de données.
    Si tu as une bases de données quelconque avec une table 'personnes' par exemple, ... alors tu devrais avoir une classe Java 'Personne' qui représente cette table et uniquement cela (dans l'idéal).
    Ceci dit, maintenant, il faut bien arriver à Créer, Lire, Mettre à jour, ou Supprimer des données de cette table 'personnes' ... autrement dit, il faut bien arriver à créer, lire, mettre à jour ou supprimer un POJO 'Personne' qui représente un champ de cette base de données. Ces opérations de modifications de la bases de données sont classiquement appelées DAO (Data Access Object), c'est à dire les classes permettant d'effectuer les changements qu'on veut dans une table représentée par son POJO.
    Ensuite, il faut savoir que ces classes et méthodes d'accès et de modifications de la base de données pourraient directement être écrits dans les POJO, mais dans ce cas, tu ne respecterais pas la séparation des couches dans le modèle MVC pour ne citer que celui-ci.

    Pour mieux comprendre, essaie de lire ce tutoriel http://cyrille-herby.developpez.com/...c-pattern-dao/ afin de comprendre mieux le pattern DAO et son utilité.

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

Discussions similaires

  1. STRHOSTSVR à quoi sert exactement ?
    Par JauB dans le forum AS/400
    Réponses: 5
    Dernier message: 22/11/2014, 17h02
  2. [XL-2010] A quoi sert exactement le segment ?
    Par Ginette54 dans le forum Excel
    Réponses: 2
    Dernier message: 05/06/2013, 05h26
  3. A quoi sert mysql exactement?
    Par josew777 dans le forum Débuter
    Réponses: 2
    Dernier message: 24/04/2008, 14h55
  4. A quoi sert InputContext exactement ?
    Par PiKo888 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 08/02/2007, 16h38

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