-
integrer le pattern DAO
Bonjour,
Je voulais savoir comment on peut integrer le pattern DAO dans JSF.
Par exemple, j'utilise la base Mysql, je definis une classe DAOFactory, une classe MySQLDAOFactory qui en herite, je cree une interface consommateurDAO avec les signatures des methodes dune classe MySQLConsommateurDAO, je fais le bean qui va bien Consommateur qui sera l'objet transfert, et je cree l'objet ConsommateurController qui interagira avec le DAO.
Mon souci est de savoir dans le managed-bean de face-config je met quoi?
Je pensai au ConsommateurController ce qui serait logique mais je ne suis pas sur que ca marche..
Quelqu'un sait? Avez vous des liens sur le sujet?
Merci ;)
-
Bonjour,
Grossièrement, ton bean doit accéder uniquement à la couche de Service, et c'est cette dernière qui accèdera à la couche DAO.
Je te conseille de lire ce thread, un peu long il est vrai, mais très riche en informations sur ce sujet...
-
Merci pour ce thread.
En fait d'apres ce que j'ai compris, ce bean que j'appelle ConsommateurController, fais partie de la couche service, je n'ai pas tout lu mais ils ont plutot l'air de discuter sur l'interet des DTO (c'est les objets transferts du pattern DAO, c'est bien ca?)..
Moi j'ai plutot un doute sur comment gerer avec jsf ce pattern, dans ce cas la aussi ou gerer la validation? dans le ConsommateurController aussi puisque l'objet transfert ne doit contenir que des getter/setter?
Vraiment j'ai pas trouver de doc sur le sujet, c'est vraiment le probleme de jsf. :(
-
Moi j'utilise l'injection d'ejb session pour ce qui est interrogation base, donc pas de dao nécessaire.
Ma validation se fait au niveau présentation ET au niveau service.
-
Je pense que ton problème vient peut de la méconnaissance de la sudvision architecturale. Je dirais globlament qu'on peut avoir trois couche pour simplifier :
-couche de persistance
-couche de service
-couche de presentation
Les dao dao se retrouveront dans la couche la persistance.
Quant a la couche de service, elle comprend l'ensemble des classes qui utiliseront les dao afin de fournir une des fonctionnalités métiers de plus haut niveau.
La cuche presentation, dans le cas de jsf comprend aussi bien les pages web que l'ensemble des beans nécessaires au fonctionnement des page. Ce sont ces derniers qui utiliseront ces services.
Pour illustrer avec ton exemle
Couche dao
-Fichier de config hibernate
-DAOConsommateur
-IDAOConsommateur
-etc ...
Couche de service (Moi je l'apperai mieux IConsommateurService, mais bon ca n'a pas d'importance)
-IConsommateurControl
ConsommateurControl
Couche de presentation
-ConsommateurBean (c'est lui qu'on configure dans faces-config)
consommateur.jsp (par exemple)
NB: les classes commencant par I sont des interfaces.
Eh oui, les couches doivent communiquer les uns via les interfaces. ca permet une bonne évolutivité.
Au fait entre parenthèse, il ne serait pas mal que tu intègre spring pour mieux subdviser tes couche.
Bye et j'espere avec éclairci quelque chose
-
Oui merci.
En etudiant de nouveau la question j'en suis arrive a la meme conclusion que toi.
Et je pense aussi que ConsomateurControl devrait s'appeler, ConsomateurService.
C'est bien cette subdivision que je n'avais pas capter.
A+
-
Tant mieux si c'est plus clair pour toi maintenant !
N'hésite pas à reposter si tu te poses des questions...
ps : Tu ne crois pas que tu devrais mettre à jour ta signature, chère membre confirmée ;)
-
Oui t'inquietes pas je suis une pro du "postage"...
Lol pour la signature..