Я просматривал документ и наткнулся на термин, который называется DAO
. Я обнаружил, что это объект доступа к данным. Может кто-нибудь объяснить мне, что это на самом деле?
Я знаю, что это своего рода интерфейс для доступа к данным из разных типов источников, в середине этого небольшого моего исследования я натолкнулся на концепцию, называемую источником данных или объектом источника данных, и вещи запутались в моей голове.
Я действительно хочу знать, что DAO
такое программно с точки зрения того, где оно используется. Как это используется? Любые ссылки на страницы, которые объясняют эту концепцию из самых простых вещей, также приветствуются.
Это объект / интерфейс , который используется для доступа к данным из базы данных хранилища данных.
он абстрагирует извлечение данных из ресурса данных, такого как база данных. Концепция заключается в том, чтобы «отделить клиентский интерфейс ресурса данных от его механизма доступа к данным».
Проблема прямого доступа к данным заключается в том, что источник данных может измениться. Предположим, например, что ваше приложение развернуто в среде, которая обращается к базе данных Oracle. Затем он впоследствии развертывается в среде, которая использует Microsoft SQL Server. Если ваше приложение использует хранимые процедуры и специфичный для базы данных код (например, генерирует последовательность чисел), как вы справляетесь с этим в своем приложении? У вас есть два варианта:
Это называется DAO Pattern и состоит из следующего:
Пример
Я предполагаю, что эти вещи, должно быть, до некоторой степени прояснили ваше понимание DAO.
источник
DAO (Data Access Object) - очень часто используемый шаблон проектирования в корпоративных приложениях. В основном это модуль, который используется для доступа к данным из любого источника (СУБД, XML и т. Д.). Я предлагаю вам прочитать несколько примеров, как этот:
Пример DAO
Обратите внимание, что существуют разные способы реализации исходного шаблона DAO , и существует множество платформ, которые могут упростить вашу работу. Например, платформы ORM (Object Relational Mapping), такие как iBatis или Hibernate, используются для сопоставления результата запросов SQL с объектами Java.
Надеюсь, это поможет, пока!
источник
Шаблон доступа к данным или шаблон DAO используется для отделения низкоуровневого API доступа к данным или операций от бизнес-сервисов высокого уровня. Ниже приведены участники в шаблоне доступа к данным.
Интерфейс объекта доступа к данным - этот интерфейс определяет стандартные операции, которые должны выполняться над модельным объектом (ами).
Объект доступа к данным конкретного класса - этот класс реализует интерфейс выше. Этот класс отвечает за получение данных из источника данных, которым может быть база данных / xml или любой другой механизм хранения.
Объект модели или объект значения - это простой объект POJO, содержащий методы get / set для хранения данных, полученных с использованием класса DAO.
Пример кода здесь ..
источник
Я собираюсь быть общим и не специфичным для Java, так как DAO и ORM используются на всех языках.
Чтобы понять DAO, вам сначала нужно понять ORM (Object Relational Mapping). Это означает, что если у вас есть таблица с именем person и столбцами name и age, вы должны создать объект-шаблон для этой таблицы:
Теперь с помощью DAO вместо того, чтобы писать какие-то конкретные запросы, чтобы выбрать всех людей, для любого типа БД, который вы используете (который может быть подвержен ошибкам), вместо этого вы делаете:
Вы не пишете абстракцию DAO самостоятельно, вместо этого она обычно является частью какого-либо проекта с открытым исходным кодом, в зависимости от того, какой язык и среду вы используете.
Теперь к основному вопросу здесь. " .. где это используется .. " Ну, обычно, если вы пишете сложный код для бизнеса и предметной области, ваша жизнь будет очень сложной без DAO. Конечно, вам не нужно использовать ORM и DAO, вместо этого вы можете написать собственную абстракцию и собственные запросы. Я делал это в прошлом и почти всегда сожалел об этом позже.
источник
Я думаю, что лучший пример (вместе с объяснениями) вы можете найти на сайте оракула: здесь . Еще одно хорошее учебное пособие можно найти здесь .
источник
Не путайся со многими объяснениями. DAO: от самого имени это означает доступ к данным с использованием объекта. DAO отделен от другой бизнес-логики.
источник
Объект доступа к данным управляет соединением с источником данных для получения и хранения данных. Он абстрагирует базовую реализацию доступа к данным для бизнес-объекта, чтобы обеспечить прозрачный доступ к источнику данных. Источником данных может быть любая база данных, такая как СУБД, репозиторий XML или плоская файловая система и т. Д.
источник
Весна JPA DAO
Например, у нас есть группа лиц.
Для этой сущности мы создаем репозиторий GroupRepository.
Затем нам нужно создать сервисный слой, с которым мы будем использовать этот репозиторий.
И в контроллере мы используем этот сервис.
источник
DAO - это «Менеджер постоянства» в трехуровневой архитектуре, а также DAO также шаблон проектирования, поскольку вы можете обратиться к книге «Банда четырех». Вашему уровню обслуживания приложений просто нужно вызвать метод класса DAO, не зная скрытых и внутренних деталей метода DAO.
источник
Предложения Dao используются для повторного использования логики jdbc, а Dao (объект доступа к данным) является шаблоном проектирования. dao - это простой Java-класс, который содержит логику JDBC.
Уровень доступа к данным хорошо себя зарекомендовал на отдельном уровне бизнес-логики и постоянном уровне. Шаблон проектирования DAO полностью скрывает реализацию доступа к данным от своих клиентов.
Объект доступа к данным Java (Java DAO) является важным компонентом в бизнес-приложениях. Бизнес-приложениям почти всегда требуется доступ к данным из реляционных или объектных баз данных, а платформа Java предлагает множество методов для доступа к этим данным. Самым старым и наиболее зрелым методом является использование API Java Database Connectivity (JDBC), который предоставляет возможность выполнять SQL-запросы к базе данных, а затем извлекать результаты по одному столбцу за раз.
источник
Pojo также рассматривают как класс Model в Java, где мы можем создать getter и setter для определенной переменной, определенной private. Помните, что все переменные здесь объявлены с частным модификатором
источник