Объект доступа к данным (DAO) в Java
Я просматривал документ и наткнулся на термин под названием DAO. Я узнал, что это объект доступа к данным. Может кто-нибудь объяснить мне, что это на самом деле?
Я знаю, что это какой-то интерфейс для доступа к данным из различных типов источников, в середине этого небольшого исследования я наткнулся на понятие источника данных или объекта источника данных, и все перевернулось в моей голове.
Я действительно хочу знать, что DAO программно с точки зрения того, где он используется. Как он используется? Любые ссылки на страницы, которые объясняют эту концепцию из самых основных материалов, также приветствуются.
11 ответов:
объект доступа к данным-это в основном объект или интерфейс, который обеспечивает доступ к базовой базе данных или любому другому хранилищу сохраняемости.
это определение из: http://en.wikipedia.org/wiki/Data_access_object
проверьте также диаграмму последовательности здесь: http://www.oracle.com/technetwork/java/dataaccessobject-138824.html
может быть, простой пример может помочь вам понять концепцию:
давайте скажем, у нас есть объект, представляющий сотрудника:
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; } }сущности сотрудников будут сохранены в соответствующем
Employeeтаблицы в базе данных. Простой интерфейс DAO для обработки операции с базой данных, необходимой для управления объектом employee, будет выглядеть так:interface EmployeeDAO { List<Employee> findAll(); List<Employee> findById(); List<Employee> findByName(); boolean insertEmployee(Employee employee); boolean updateEmployee(Employee employee); boolean deleteEmployee(Employee employee); }Далее мы должны предоставить конкретную реализацию для этого интерфейса для работы с SQL server, а другой-для работы с плоскими файлами и т. д.
Что такое объект доступа к данным (DAO) -
это объект/интерфейс, который используется для доступ к данным из базы данных хранилища данных.
ПОЧЕМУ МЫ ИСПОЛЬЗУЕМ DAO:
он абстрагирует извлечение данных из ресурса данных, такого как база данных. Концепция заключается в " отделить клиентский интерфейс ресурса данных от доступа к данным механизм."
проблема с прямым доступом к данным заключается в том, что источник данных может измениться. Рассмотрим, например, что ваше приложение развертывается в среде, которая обращается к базе данных Oracle. Затем он впоследствии развертывается в среде, которая использует Microsoft SQL Server. Если ваше приложение использует хранимые процедуры и код для конкретной базы данных (например, создание номерной серии), как вы справляетесь с этим в своем приложении? У вас есть два опции:
- перепишите приложение, чтобы использовать SQL Server вместо Oracle (или добавить условный код для обработки различий), или
- создайте слой между логикой приложения и доступом к данным
Его во всех называют DAO Pattern, Он состоит из следующих элементов:
- Интерфейс Объекта Доступа К Данным - это интерфейс определяет стандартные операции to выполняется на объекте (объектах) модели.
- конкретный класс объекта доступа к данным -этот класс реализует интерфейс. Этот класс ответственный за получение данных из источника данных который может быть базой данных / xml или любым другим механизмом хранения.
- объект модели или объект значения - Это объект простой POJO, содержащий get / set методы для хранения данных, полученных с помощью DAO-класс.
пожалуйста, проверьте этот пример, это поможет более четко.
пример
Я предполагаю, что это должно было прояснить ваше понимание Дао до определенной степени.
DAO (объект доступа к данным) - это очень используемый шаблон проектирования в корпоративных приложениях. Это в основном модуль, который используется для доступа к данным из каждого источника (СУБД, XML и так далее). Я предлагаю вам прочитать некоторые примеры, как этот:
обратите внимание, что существуют различные способы реализации оригинала DAO Pattern, и есть много механизмов, которые могут упростить вашу работу. Например, ORM (объект Реляционное сопоставление) фреймворки, такие как iBatis или Hibernate, используются для сопоставления результата SQL-запросов с объектами java.
надеюсь, что это помогает, Пока!
Не путайте слишком много объяснений. DAO:от самого имени это означает доступ к данным с помощью объекта. DAO отделен от других бизнес-логик.
шаблон объекта доступа к данным или шаблон DAO используется для отделения низкоуровневых данных, обращающихся к API или операциям, от высокоуровневых бизнес-служб. Ниже приведены участники в шаблоне объекта доступа к данным.
интерфейс объекта доступа к данным-этот интерфейс определяет стандартные операции, которые будут выполняться над объектами модели.
объект доступа к данным конкретный класс-этот класс реализует выше интерфейс. Этот класс отвечает за получение данных из источника данных, который может быть база данных / xml или любой другой механизм хранения.
объект модели или объект значения - этот объект является простым POJO, содержащим методы get / set для хранения данных, полученных с помощью класса DAO.
пример кода здесь..
Я собираюсь быть общим и не специфичным для Java, поскольку DAO и ORM используются во всех языках.
чтобы понять DAO, вам сначала нужно понять ORM (Object Rational Mapping). Это означает, что если у вас есть таблица под названием "пациент "со столбцами" имя "и" возраст", то вы создадите объект-шаблон для этой таблицы:
type Person { name age }теперь с помощью DAO вместо написания некоторых конкретных запросов, чтобы получить все лица, для какого типа БД вы используете (который может быть подвержен ошибкам) вместо этого вы делаете:
list persons = DAO.getPersons(); ... person = DAO.getPersonWithName("John"); age = person.age;вы не пишете абстракцию DAO самостоятельно, вместо этого она обычно является частью какого-либо проекта с открытым исходным кодом, в зависимости от того, какой язык и фреймворк вы используете.
теперь к главному вопросу здесь. "..где он используется..". Ну обычно, если вы пишете сложный бизнес и доменный код, ваша жизнь будет очень сложной без DAO. Конечно, вам не нужно использовать ORM и DAO, а вы можно написать свою собственную абстракцию и собственные запросы. Я сделал это в прошлом и почти всегда сожалел об этом позже.
объект доступа к данным управляет соединением с источником данных для получения и хранения data.It абстрагирует базовую реализацию доступа к данным для бизнес-объекта, чтобы обеспечить прозрачный доступ к источнику данных. Источником данных может быть любая база данных, такая как СУБД, репозиторий XML или плоская файловая система и т. д.
DAO-это акт, подобный " менеджеру персистентности "в 3-уровневой архитектуре, а также шаблон проектирования DAO, поскольку вы можете проконсультироваться с книгой" Gang of Four". Ваш уровень службы приложений просто должен вызвать метод класса DAO, не зная скрытых и внутренних деталей метода DAO.
Pojo также рассматривается как класс модели в Java, где мы можем создать геттер и сеттер для конкретной переменной, определенной в частном порядке . Помните, что все переменные здесь объявлены с частным модификатором
DAO clases используются для повторного использования логики jdbc & Dao (объект доступа к данным) является шаблоном проектирования. dao-это простой класс java, который содержит логику JDBC .
уровень доступа к данным оказался хорошим в отдельном уровне бизнес-логики и постоянном слое. Шаблон проектирования DAO полностью скрывает реализацию доступа к данным от своих клиентов
объект доступа к данным Java (Java DAO) является важным компонентом в бизнес-приложениях. Бизнес-приложения почти всегда нужно доступ к данным из реляционных или объектных баз данных и платформы Java предлагает множество методов для доступа к этим данным. Самый старый и наиболее зрелый метод заключается в использовании API Java Database Connectivity (JDBC), который предоставляет возможность выполнять SQL-запросы к базе данных, а затем извлекать результаты по одному столбцу за раз.
Comments