La capa de acceso a datos es la capa (conjunto de entidades) de la aplicación encargada de la persistencia de los datos. Realiza consultas a Bases de Datos específicas en su lenguaje (suelen ser dialectos de SQL), pero devuelve objetos del dominio de la aplicación.

Así, el DAO (Data Access Object) abstrae la persistencia y el acceso a los datos. Esto permite que la aplicación pueda cambiar de motor de base de datos y solo modificar el DAO, es decir, el DAO encapsula este comportamiento.
Objetos en Java para interactuar con una base de datos SQL:
Connection: se crea uno solo. Necesita la url de la base de datos.Statement: representa una consulta de SQL.ResultSet: es el resultado de una consulta. Con.next()se puede iterar sobre el cursor.
La capa de accesos a datos será consumida por la capa de servicios, que se encarga de encapsular la lógica de negocio de la aplicación.