Objet d'accès aux données (DAO) en Java

Je parcourais un document et je suis tombé sur un terme appelé DAO. J'ai découvert que c'est un objet D'accès aux données. Quelqu'un peut-il svp m'expliquer ce que c'est réellement?

Je sais que c'est une sorte d'interface pour accéder aux données de différents types de sources, au milieu de cette petite recherche, je suis tombé sur un concept appelé source de données ou objet source de données, et les choses se sont gâtées dans mon esprit.

Je veux vraiment savoir ce qu'est un DAO est programmatiquement en termes d'où il est utilisé. Comment est-il utilisé? Tous les liens vers des pages qui expliquent ce concept de la substance très basique est également apprécié.

260
demandé sur Paul Rooney 2013-10-03 12:20:37

11 réponses

L'objet D'accès aux données est essentiellement un objet ou une interface qui donne accès à une base de données sous-jacente ou à tout autre stockage de persistance.

Cette définition de: http://en.wikipedia.org/wiki/Data_access_object

Vérifiez également le diagramme de séquence ici: http://www.oracle.com/technetwork/java/dataaccessobject-138824.html

Peut-être qu'un exemple simple peut vous aider à comprendre le concept:

Disons que nous avons une entité pour représenter un employé:

public class Employee {

    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 entités des employés seront conservées dans un Employee table dans une base de données. Une interface DAO simple pour gérer l'opération de base de données requise pour manipuler une entité d'employé sera comme:

interface EmployeeDAO {

    List<Employee> findAll();
    List<Employee> findById();
    List<Employee> findByName();
    boolean insertEmployee(Employee employee);
    boolean updateEmployee(Employee employee);
    boolean deleteEmployee(Employee employee);

}

Ensuite, nous devons fournir une implémentation concrète pour cette interface pour traiter SQL server, et une autre pour traiter les fichiers plats, etc.

355
répondu Rami 2016-03-06 20:16:59

QU'est-ce que L'objet D'accès aux données (DAO) -

Il est un objet/interface, qui est utilisé pour données d'accès à partir de la base de données de stockage de données.

POURQUOI NOUS UTILISONS DAO:

Il fait abstraction de la récupération de données à partir d'une ressource de données telle qu'une base de données. Le concept est de "séparer l'interface client d'une ressource de données de son mécanisme d'accès aux données."

Le problème de l'accès direct aux données est-ce que la source des données peut changer. Considérez, par exemple, que votre application est déployée dans un environnement qui accède à une base de données Oracle. Ensuite, il est ensuite déployé dans un environnement qui utilise Microsoft SQL Server. Si votre application utilise des procédures stockées et du code spécifique à la base de données (comme la génération d'une séquence de nombres), comment gérez-vous cela dans votre application? Vous avez deux options:

  • réécrivez votre application pour utiliser SQL Server au lieu D'Oracle (ou ajoutez code conditionnel pour gérer les différences), ou
  • créez une couche entre votre logique d'application et l'accès aux données


Son dans tout appelé Dao Pattern , il se compose de ce qui suit:

  • Data Access Object Interface - cette interface définit les opérations standard à effectuer sur un ou plusieurs objets de modèle.
  • Objet d'Accès aux Données de la classe de béton -Cette classe implémente l'interface ci-dessus. Cette classe est responsable d'obtenir des données à partir d'une source de données qui peut être une base de données / xml ou tout autre mécanisme de stockage.
  • Objet modèle ou objet Valeur - Cet objet est simple POJO contenant les méthodes get/set pour stocker les données récupérées à l'aide de la classe DAO.

Veuillez vérifier cet exemple, cela effacera les choses plus clairement.

Exemple
Je suppose que ces choses ont dû effacer votre compréhension de DAO jusqu'à certain étendre.

60
répondu VedX 2015-07-31 08:20:52

DAO (Data Access Object) est un modèle de conception très utilisé dans les applications d'entreprise. C'est essentiellement le module qui est utilisé pour accéder aux données de chaque source (SGBD, XML, etc.). Je vous suggère de lire quelques exemples, comme celui-ci:

Exemple DAO

Veuillez noter qu'il existe différentes façons d'implémenter le modèle DAO original, et il existe de nombreux frameworks qui peuvent simplifier votre travail. Par exemple, les frameworks ORM (Object Relational Mapping) comme iBatis ou Hibernate, sont utilisés pour mapper le résultat des requêtes SQL aux objets java.

J'Espère que ça aide, Au revoir!

12
répondu umanganiello 2013-10-03 08:36:52

Ne vous confondez pas avec trop d'explications. DAO: à partir du nom lui-même, cela signifie accéder aux données en utilisant Object. DAO est séparé des autres logiques commerciales.

4
répondu ArunValaven 2016-07-27 17:40:10

Je pense que le meilleur exemple (avec des explications) que vous pouvez trouver sur le site web d'oracle : ici. Un autre bon tuturial pourrait être trouvé ici .

3
répondu Ioan 2013-10-03 08:41:42

Data Access Object Pattern ou DAO pattern est utilisé pour séparer les API ou les opérations d'accès aux données de bas niveau des services métier de haut niveau. Voici les participants au Modèle D'objet D'accès aux données.

Interface D'objet D'accès aux données-Cette interface définit les opérations standard à effectuer sur un ou plusieurs objets de modèle.

Objet d'Accès aux Données de la classe de béton -Cette classe implémente l'interface ci-dessus. Cette classe est responsable d'obtenir des données à partir d'une source de données qui peut être une base de données / xml ou tout autre mécanisme de stockage.

Objet modèle ou objet valeur-cet objet est un simple POJO contenant des méthodes get/set pour stocker les données récupérées à l'aide de la classe DAO.

Exemple de code ici..

3
répondu babu 2017-12-31 09:49:03

Je vais être général et non spécifique à Java car DAO et ORM sont utilisés dans toutes les langues.

Pour comprendre DAO, vous devez d'abord comprendre ORM (Object Rational Mapping). Cela signifie que si vous avez une table appelée "patient" avec les colonnes "nom" et "age", vous devez créer un objet-modèle pour ce tableau:

type Person {
name
age
}

Maintenant, avec L'aide de DAO au lieu d'écrire des requêtes spécifiques, pour récupérer toutes les personnes, pour quel type de base de données que vous utilisez (qui peut être à la place, vous faites:

list persons = DAO.getPersons();
...
person = DAO.getPersonWithName("John");
age = person.age;

Vous n'écrivez pas vous-même l'abstraction DAO, mais elle fait généralement partie d'un projet opensource, en fonction de la langue et du cadre que vous utilisez.

Maintenant à la question principale ici. "..où il est utilisé..". Eh bien, généralement, si vous écrivez un code d'entreprise complexe et spécifique au Domaine, votre vie sera très difficile sans DAO. Bien sûr, vous n'avez pas besoin d'utiliser ORM et DAO fournis, à la place, vous pouvez écrire le vôtre abstraction et requêtes natives. Je l'ai fait dans le passé, et presque toujours regretté plus tard.

2
répondu Orhan 2018-05-25 12:30:03

L'objet accès aux données gère la connexion avec la source de données pour obtenir et stocker data.It extrait l'implémentation d'accès aux données sous-jacente de L'objet métier pour permettre un accès transparent à la source de données. Une source de données peut être n'importe quelle base de données telle qu'un SGBDR, un référentiel XML ou un système de fichiers plat, etc.

1
répondu Rohit Goyal 2014-06-18 06:54:06

DAO est un acte comme "gestionnaire de persistance" dans l'architecture de niveau 3 ainsi que DAO aussi modèle de conception que vous pouvez consulter le livre" Gang of Four". Votre couche de service d'application a juste besoin d'appeler la méthode de la classe DAO sans connaître les détails cachés et internes de la méthode de DAO.

1
répondu Yasir Shabbir Choudhary 2016-04-27 06:57:03

Pojo considère également comme classe de modèle en Java où nous pouvons créer getter et setter pour une variable particulière définie en privé . Rappelez-vous que toutes les variables sont déclarées ici avec le modificateur privé

0
répondu Amrit Baghel 2016-07-13 06:21:50

Les clases Dao sont utilisées pour réutiliser la logique JDBC & Dao (Data Access Object) est un modèle de conception. dao est une classe java simple qui contient une logique JDBC .

La couche D'accès aux données s'est avérée bonne dans la couche logique métier séparée et la couche persistante. Le modèle de conception DAO cache complètement l'implémentation d'accès aux données de ses clients

L'objet Java Data Access (Java Dao) est un composant important dans les applications métier. Applications d'entreprise presque toujours besoin d'accéder aux données de bases de données relationnelles ou d'objets et la plate-forme Java offre de nombreuses techniques pour accéder à ces données. La technique la plus ancienne et la plus mature consiste à utiliser L'API Java Database Connectivity (JDBC), qui permet d'exécuter des requêtes SQL sur une base de données, puis d'extraire les résultats, une colonne à la fois.

0
répondu Amrit Baghel 2016-07-13 06:35:36