El objeto de acceso a datos es básicamente un objeto o una interfaz que proporciona acceso a una base de datos subyacente o cualquier otro almacenamiento de persistencia.
Esa definición de:
http://en.wikipedia.org/wiki/Data_access_object
Consulte también el diagrama de secuencia aquí:
http://www.oracle.com/technetwork/java/dataaccessobject-138824.html
Quizás un simple ejemplo pueda ayudarlo a comprender el concepto:
Digamos que tenemos una entidad para representar a un empleado:
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;
}
}
Las entidades de los empleados permanecerán en una Employee
tabla correspondiente en una base de datos. Una interfaz DAO simple para manejar la operación de la base de datos requerida para manipular una entidad de empleado será como:
interface EmployeeDAO {
List<Employee> findAll();
List<Employee> findById();
List<Employee> findByName();
boolean insertEmployee(Employee employee);
boolean updateEmployee(Employee employee);
boolean deleteEmployee(Employee employee);
}
A continuación, tenemos que proporcionar una implementación concreta para esa interfaz para tratar con el servidor SQL, y otra para tratar con archivos planos, etc.
Es un objeto / interfaz , que se utiliza para acceder a los datos de la base de datos de almacenamiento de datos.
abstrae la recuperación de datos de un recurso de datos como una base de datos. El concepto es "separar la interfaz del cliente de un recurso de datos de su mecanismo de acceso a datos".
El problema con el acceso directo a los datos es que la fuente de los datos puede cambiar. Considere, por ejemplo, que su aplicación se implementa en un entorno que accede a una base de datos Oracle. Luego se implementa en un entorno que utiliza Microsoft SQL Server. Si su aplicación utiliza procedimientos almacenados y código específico de la base de datos (como generar una secuencia numérica), ¿cómo maneja eso en su aplicación? Tienes dos opciones:
Es en todo referido como Patrón DAO , Consiste en lo siguiente:
Ejemplo
Supongo que esto debe haber aclarado su comprensión de DAO hasta cierto punto.
fuente
DAO (Data Access Object) es un patrón de diseño muy utilizado en aplicaciones empresariales. Básicamente es el módulo que se utiliza para acceder a los datos de todas las fuentes (DBMS, XML, etc.). Le sugiero que lea algunos ejemplos, como este:
Ejemplo de DAO
Tenga en cuenta que hay diferentes formas de implementar el patrón DAO original , y hay muchos marcos que pueden simplificar su trabajo. Por ejemplo, los marcos ORM (Object Relational Mapping) como iBatis o Hibernate, se utilizan para asignar el resultado de las consultas SQL a objetos java.
Espero que ayude, ¡Adiós!
fuente
El patrón de objetos de acceso a datos o el patrón DAO se utilizan para separar las operaciones u API de acceso a datos de bajo nivel de los servicios empresariales de alto nivel. Los siguientes son los participantes en el patrón de objetos de acceso a datos.
Interfaz de objeto de acceso a datos: esta interfaz define las operaciones estándar que se realizarán en un objeto (s) modelo.
Clase concreta del objeto de acceso a datos: esta clase implementa la interfaz anterior. Esta clase es responsable de obtener datos de una fuente de datos que puede ser base de datos / xml o cualquier otro mecanismo de almacenamiento.
Objeto modelo u objeto de valor: este objeto es un POJO simple que contiene métodos get / set para almacenar datos recuperados utilizando la clase DAO.
Código de muestra aquí ...
fuente
Voy a ser general y no específico de Java, ya que DAO y ORM se usan en todos los idiomas.
Para comprender DAO, primero debe comprender ORM (asignación racional de objetos). Esto significa que si tiene una tabla llamada "persona" con las columnas "nombre" y "edad", crearía una plantilla de objeto para esa tabla:
Ahora con la ayuda de DAO en lugar de escribir algunas consultas específicas, para buscar a todas las personas, para cualquier tipo de db que esté utilizando (que puede ser propenso a errores), haga lo siguiente:
Usted no escribe la abstracción DAO, sino que generalmente forma parte de algún proyecto de código abierto, según el lenguaje y el marco que esté utilizando.
Ahora a la pregunta principal aquí. " ... donde se usa ... ". Por lo general, si está escribiendo un código complejo de negocios y dominio específico, su vida será muy difícil sin DAO. Por supuesto, no necesita usar ORM y DAO, sino que puede escribir su propia abstracción y consultas nativas. Lo he hecho en el pasado y casi siempre me arrepiento después.
fuente
Creo que el mejor ejemplo (junto con explicaciones) puede encontrar en el sitio web de Oracle: aquí . Otro buen tutorial se puede encontrar aquí .
fuente
No te confundas con demasiadas explicaciones. DAO: Desde el nombre en sí mismo, significa acceder a los datos usando Object. DAO está separado de otra lógica de negocios.
fuente
El objeto de acceso a datos gestiona la conexión con la fuente de datos para obtener y almacenar datos. Resume la implementación de acceso a datos subyacente para el objeto de negocio para permitir un acceso transparente a la fuente de datos. Una fuente de datos podría ser cualquier base de datos, como un RDBMS, un repositorio XML o un sistema de archivos planos, etc.
fuente
Spring JPA DAO
Por ejemplo tenemos alguna entidad Grupo.
Para esta entidad creamos el repositorio GroupRepository.
Luego, necesitamos crear una capa de servicio con la cual usaremos este repositorio.
Y en el controlador usamos este servicio.
fuente
DAO es un acto como "Administrador de persistencia" en la arquitectura de 3 niveles, así como DAO también diseña patrones, ya que puede consultar el libro "Gang of Four". La capa de servicio de su aplicación solo necesita llamar al método de la clase DAO sin conocer los detalles ocultos e internos del método DAO.
fuente
Las clases de Dao se utilizan para reutilizar la lógica jdbc y el Dao (objeto de acceso a datos) es un patrón de diseño. dao es una clase simple de Java que contiene lógica JDBC.
La capa de acceso a datos ha demostrado ser buena en una capa lógica empresarial separada y una capa persistente. El patrón de diseño DAO oculta completamente la implementación de acceso a datos de sus clientes
El Java Data Access Object (Java DAO) es un componente importante en las aplicaciones empresariales. Las aplicaciones comerciales casi siempre necesitan acceso a datos de bases de datos relacionales u objetos y la plataforma Java ofrece muchas técnicas para acceder a estos datos. La técnica más antigua y madura es utilizar la API de Java Database Connectivity (JDBC), que proporciona la capacidad de ejecutar consultas SQL en una base de datos y luego obtener los resultados, una columna a la vez.
fuente
Pojo también lo considera como clase de modelo en Java donde podemos crear getter y setter para una variable particular definida en privado. Recuerde que todas las variables se declaran aquí con un modificador privado
fuente