patron objetos mvc example ejemplo con acceso java dao

java - mvc - objetos de acceso



Objeto de acceso a datos(DAO) en Java (11)

Estaba revisando un documento y encontré un término llamado DAO . Descubrí que es un objeto de acceso a datos. ¿Puede alguien explicarme por favor qué es esto realmente?

Sé que es una especie de interfaz para acceder a datos de diferentes tipos de fuentes, en medio de esta pequeña investigación mía, me topé con un concepto llamado fuente de datos u objeto de fuente de datos, y las cosas se desordenaron en mi mente.

Realmente quiero saber qué es un DAO programáticamente en términos de dónde se usa. ¿Cómo se usa? También se agradece cualquier enlace a páginas que expliquen este concepto a partir de cosas muy básicas.


¿Qué es el OBJETO DE ACCESO A DATOS (DAO) ?

Es un objeto / interfaz , que se utiliza para acceder a los datos de la base de datos de almacenamiento de datos.

POR QUÉ UTILIZAMOS DAO:

abstrae la recuperación de datos de un recurso de datos, como una base de datos. El concepto es "separar la interfaz de 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 posteriormente en un entorno que utiliza Microsoft SQL Server. Si su aplicación utiliza procedimientos almacenados y un 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:

  • Reescriba su aplicación para usar SQL Server en lugar de Oracle (o agregue un código condicional para manejar las diferencias), o
  • Cree una capa entre la lógica de su aplicación y el acceso a los datos


En todos los referidos como patrón DAO , consiste en lo siguiente:

  • Interfaz de objetos 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 database / xml o cualquier otro mecanismo de almacenamiento.
  • Objeto modelo o objeto de valor : este objeto es un POJO simple que contiene métodos de obtención / configuración para almacenar datos recuperados utilizando la clase DAO.

Por favor verifica este ejemplo, Esto aclarará las cosas más claramente.

Example
Supongo que esto debe haber aclarado su comprensión de DAO hasta cierto punto.



DAO (objeto de acceso a datos) 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.). Te sugiero que leas algunos ejemplos, como este:

Ejemplo DAO

Tenga en cuenta que hay diferentes maneras de implementar el http://en.wikipedia.org/wiki/Data_access_object original y hay muchos marcos que pueden simplificar su trabajo. Por ejemplo, los marcos de ORM (asignación relacional de objetos), como iBatis o Hibernate, se utilizan para asignar el resultado de las consultas SQL a los objetos java.

Espero que te ayude, Bye!


DAO es un acto como "Administrador de persistencia" en la arquitectura de 3 niveles, así como DAO también diseña patrones como 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 detalles ocultos e internos del método de DAO.


El objeto de acceso a datos administra la conexión con el origen 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 al origen de datos. Una fuente de datos podría ser cualquier base de datos como RDBMS, repositorio XML o sistema de archivos planos, etc.


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 ayudarte a entender 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 empleado se conservarán en una tabla de Employee correspondiente en una base de datos. Una interfaz DAO simple para manejar la operación de 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); }

Luego tenemos que proporcionar una implementación concreta para esa interfaz para tratar con el servidor SQL, y otra para tratar con archivos planos, etc.


El patrón de objeto de acceso a datos o el patrón DAO se utiliza para separar las API de acceso a datos de bajo nivel o las operaciones de los servicios empresariales de alto nivel. Los siguientes son los participantes en el patrón de objeto de acceso a datos.

Interfaz de objetos 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 database / xml o cualquier otro mecanismo de almacenamiento.

Objeto modelo o objeto de valor: este objeto es un POJO simple que contiene métodos de obtención / configuración para almacenar datos recuperados utilizando la clase DAO.

Código de muestra here ..


Las clases Dao se utilizan para reutilizar la lógica jdbc y Dao (Objeto de acceso a datos) es un patrón de diseño. dao es una clase java simple que contiene lógica JDBC.

La capa de acceso a datos ha demostrado ser buena en la capa de lógica de negocios separada y en la 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 los datos desde bases de datos relacionales o de objetos, y la plataforma Java ofrece muchas técnicas para acceder a estos datos. La técnica más antigua y más madura es utilizar la API de conectividad de base de datos de Java (JDBC), que proporciona la capacidad de ejecutar consultas de SQL en una base de datos y luego obtener los resultados, una columna a la vez.


No te confundas con demasiadas explicaciones. DAO: del nombre en sí mismo significa acceder a los datos usando el objeto. DAO está separado de otras lógicas empresariales.


Pojo también se considera como clase de modelo en Java, donde podemos crear getter y setter para una variable particular definida en privado. Recuerda que todas las variables están aquí declaradas con modificador privado.


Voy a ser general y no específico de Java, ya que DAO y ORM se utilizan en todos los idiomas.

Para comprender DAO, primero debe comprender ORM (Object Rational Mapping). Esto significa que si tienes una tabla llamada "paciente" con columnas "nombre" y "edad", entonces crearías una plantilla de objeto para esa tabla:

type Person { name age }

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é usando (lo que puede ser propenso a errores) en lugar de hacerlo:

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

Usted no escribe la abstracción de DAO usted mismo, en cambio, suele ser parte de algún proyecto de código abierto, según el idioma y el marco que esté utilizando.

Ahora a la pregunta principal aquí. " ... donde se usa .. ". Bueno, generalmente si está escribiendo un código complejo de negocios y de dominio específico, su vida será muy difícil sin DAO. Por supuesto, no es necesario que utilice ORM y DAO, en su lugar, puede escribir sus propias abstracciones y consultas nativas. Lo he hecho en el pasado y casi siempre lo lamento más tarde.