Requêtes à la Base de Données - RobinDumontChaponet/synthese GitHub Wiki
Cette partie consiste à rassembler toutes les requêtes à la base de données afin de permettre d'uniformiser leur utilisation. Nous nous sommes posés une question, comment faire pour pouvoir utiliser ces requêtes facilement sans avoir à les réécrire chaque fois que le besoin s'en fait sentir ? Il faut placer ces requêtes dans des fonctions et ainsi il n'y a plus qu'à faire appel à ces fonctions. Mais un problème se pose. Il faut donner des noms différents à chaque fonction pour en fonction de l'objet que cette fonction manipule. Donc le plus simple est de placer ces fonctions dans des objets. Ces fonctions deviennent donc des méthodes que l'on défini comme statiques.
Cette façon de faire nous permet d'avoir un convention de nommage de nos méthodes en fonction de leurs actions. Il y a des méthodes que l'on va retrouver dans chaque objet DAO :
- create : Cette méthode va nous permettre d’insérer un élément dans la base de données. On établit dans notre convention que cette méthode nous renvoie la clé primaire générée si elle est simple. Elle va prendre en paramètre un objet à insérer.
- update : Cette méthode va nous permettre de modifier un objet déjà existant dans la base de données. Elle prend en paramètre l'objet modifié.
- delete : Cette méthode va supprimer de la base de données l'objet passé en paramètre.
- get : Cette méthode va nous retourner une liste d'objets du type demandé de tous les éléments de la base de données. Il n'y a aucun paramètre.
- getById : Cette méthode nous retourne un objet contenant le résultat de la base de données mais pour un id passé en paramètre.
Ces méthodes communes à tous les objets nous facilitent le codage. Elles nous évitent d'avoir à chercher le nom de la méthode pour chaque appel. Il nous suffit de nous demander ce que l'on veut faire sur un objet et de se rappeler du nom de la convention, d'appeler l'objet DAO et de faire appel à la méthode.
D'autres méthodes peuvent être ajoutées dans chaque objet en fonction des besoins. Par exemple pour un ancien, on va peut être vouloir le chercher en fonction de son nom ou d'une partie de son nom (LIKE en SQL). Donc pour cet exemple, il suffira d'ajouter une méthode getByNom(nom) dans l'objet AncienDAO.