Téléchargez comme PPTX, PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 11
DAO
Généralités
• Un design pattern est un patron de conception :
Solution standard, testée et éprouvée par la communauté objet, pour répondre à un problème d'architecture ou de conception de logiciel. • Concept issu des travaux du fameux Gang of Four (GoF : Erich Gamma, Richard Helm, Ralph Johnson, et John Vlissides). • publiés dans « Design Patterns: Elements of Reusable Object-Oriented Software » édité en 1995 et proposant 23 motifs de conception. Pourquoi un patron de conception ?
• Quand on accède à une base de données depuis
un langage, il y a de nombreuses façons de faire. • Où mettre le code SQL ? • Que faire pour simplifier un futur changement de base de données cible ? • Comment obtenir une application la plus modulaire possible, la plus facilement modifiable et la plus réutilisable ? DAO répond à ces questions ! Exemple suivi Exemple suivi Exemple suivi
• Se pose maintenant la question du placement du code
SQL chargé de créer ces objets depuis la base, ou de mettre à jour la base en fonction de ces objets. • SQL est un langage normalisé, certes, mais chaque SGBD a ses particularités et son dialecte propre. • Imaginons que le code SQL est placé dans les objets métier. Lors d'un changement de SGBD cible, ou si on décide d'abandonner la solution SGBD pour une solution XML par exemple, il faudra modifier les objets métiers. Cette solution n'est donc pas la bonne. Exemple suivi • Le patron de conception DAO propose la création d'une classe DAO par classe métier. • Chaque classe DAO contient les méthodes de liaison avec la base de données, parfois appelées CRUD (pour Create, Request, Update, Delete).
• Les méthodes de suppression et de modification renvoient
un booléen indiquant le succès de l'opération, la méthode d'insertion renvoie l'identifiant affecté à la nouvelle ligne de la table (utile en cas d'identifiant auto-incrémenté par le SGBD), et plusieurs méthodes get permettent d'obtenie un objet en fonction de différents critères de recherche. Les objets DAO Singleton
• Ces objets DAO implémentent le patron de
conception Singleton, afin de s'assurer qu'il n'y ait qu'une seule instance de chaque classe. • Les constructeurs sont donc privés, une méthode de classe publique getInstance permettant d'accéder à l'unique objet instance de chaque classe DAO. • Le premier appel à cette méthode crée l'objet et le renvoie, les suivants se contentant de renvoyer l'objet préalablement créé. La connexion à la base de données
• Dans sa version la plus complète, le patron de
conception DAO utilise d'autres patrons de conception pour faciliter le passage à une autre solution de stockage (fichiers, autre SGBD, etc.) Nous n'irons pas jusqu'à ce stade. Nous allons nous contenter de créer une classe se chargeant de gérer la connexion à un SGBD, en l'occurence MySQL. • Cette classe est également un singleton, et contient au moins une méthode renvoyant un objet instance de java.sql.Connexion Diagramme de classes final
classes techniques
classes métier
version mono base de données du patron de conception DAO