Médiaforma

Java – Accès aux données en DAO (Data Access Object)

Print Friendly

Les objets Java résident en mémoire. Ils sont parfois liés à des données persistantes, issues de bases de données, de fichiers ou d’annuaires par exemple. Si le mode de stockage de ces données vient à changer (passage d’une base de données MySQL à des fichiers de données au format XML par exemple), il peut être judicieux de regrouper l’accès aux données dans des classes spécifiques, plutôt que de les disperser dans les classes du projet.

En mettant en place une couche d’accès aux données (DAO), si le mode de stockage des données change, seule cette couche sera à modifier :

 

 

En utilisant une couche DAO, on peut s’abstraire de la façon dont les données sont stockées au niveau des objets métier (propres à l’entreprise). Le changement du mode de stockage ne remet pas en cause le reste de l’application : seules les classes d’accès aux données sont à réécrire et/ou à adapter au nouveau type de stockage.

Supposons qu’une classe Employes ait été définie pour représenter les employés d’une société :

public class Employes {
  private int id;
  private String name;

  public int getId() {
      return id;
  }
  public void setId(int id) {
      this.id = id;
  }
  public String getName() {
      return name;
  }
  public void setName(String name) {
      this.name = name;
  }
}

Les données manipulées par la classe Employes pourraient être stockées dans la table Employes d’une base de données ou dans un fichier XML par exemple.

En s’appuyant sur l’interface DAO EmployesDAO suivante, vous pourriez écrire une classe permettant de manipuler des employés lorsqu’ils sont stockés dans une base de données et une autre lorsqu’ils sont stockés dans un fichier XML :

interface EmployesDAO {
  List<Employes> findAll();
  List<Employes> findById();
  List<Employes> findByName();
  boolean insertEmployes(Employes);
  boolean updateEmployes(Employes employes);
  boolean deleteEmployes(Employes employes);
}

Nous pourrions alors définir plusieurs classes qui implémentent cette interface : une pour gérer les bases de données MySQL, une autre pour gérer les bases de données SQL Server et une autre pour gérer les fichiers de données, etc.

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply