Объект доступа к данным (DAO) в Java



Я просматривал документ и наткнулся на термин под названием DAO. Я узнал, что это объект доступа к данным. Может кто-нибудь объяснить мне, что это на самом деле?



Я знаю, что это какой-то интерфейс для доступа к данным из различных типов источников, в середине этого небольшого исследования я наткнулся на понятие источника данных или объекта источника данных, и все перевернулось в моей голове.



Я действительно хочу знать, что DAO программно с точки зрения того, где он используется. Как он используется? Любые ссылки на страницы, которые объясняют эту концепцию из самых основных материалов, также приветствуются.

904   11  

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 отделен от других бизнес-логик.

Я думаю, что лучший пример (вместе с объяснениями) вы можете найти на веб-сайте oracle:здесь. Еще один хороший tuturial можно было найти здесь.

шаблон объекта доступа к данным или шаблон 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

    Ничего не найдено.