Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cours Jdbc-Dao

Télécharger au format pptx, pdf ou txt
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

Vous aimerez peut-être aussi